Förstå Solaris Runtime Control Scripts

Runtime-kontrollskript är ansvariga för att starta och stoppa tjänster när systemet ändrar körnivåer som vid uppstart och avstängning. Dessa skript finns i rc # .d-katalogerna där # tecknet ersätts av körnivå, t.ex. rc2.d, rc3.d och rc0.d.


Välskrivna körtidskontrollskript bör acceptera åtminstone start och stopp som runtime parametrar och kan eventuellt acceptera ytterligare parametrar som omstart och status. När ett körtidskontrollskript körs med en startparameter startar det processerna som det är ansvarigt för. På samma sätt gör stoppparametern att manuset avslutar dessa processer.

Inom körtidskontrollen finns ett antal körtidskontrollskript som börjar med versaler K eller S följt av två siffror. När systemet ändrar sin körnivå körs skript i motsvarande katalog i sorterad ordning. Därför körs ett skript som börjar med K00 före K99 som körs före S00. Ett skript som börjar med bokstaven K är ett dödsskript och kommer att köras med en stoppparameter. S-skript kommer att köras med en startparameter. På detta sätt kan samma skript användas för att starta och stoppa processer.

Det är vanligt att placera ett generiskt skript, nyhetsservice till exempel i /etc/init.d och skapa sedan logiska länkar till det här skriptet i den lämpliga rc # .d-katalogen före en lämplig kombination av K eller S och nummer. Till exempel, för att skapa ett tidigt dödsskript i rc0.d för en rc script newservice som ligger i /etc/init.d, kör som superanvändare:

cd /etc/rc0.d
ln -s ... /init.d/newservice K05newservice

När du stänger av eller startar om systemet ändrar du körnivå till 6 respektive 5. Det finns inga /etc/rc5.d eller /etc/rc6.d kataloger. Eftersom ändringen till körningsnivå 0 (öppet meddelande) innebär samma procedur som att stänga av eller starta om, dela körningsnivåerna 5 och 6 katalogen /etc/rc0.d. Det är viktigt att inkludera dödsskript för tjänster som databaser som kan vara skadade om de inte stängdes ordentligt.

För ett exempel på ett runtime kontroll script, se tech-receptet Skapa ett grundläggande Solaris runtime control script