Comprendere gli script di Solaris Runtime Control

Gli script di controllo del runtime sono responsabili dell'avvio e dell'arresto dei servizi quando il sistema cambia i livelli di esecuzione, ad esempio durante l'avvio e l'arresto. Questi script si trovano nelle directory rc # .d in cui il segno # viene sostituito dal livello di esecuzione, come rc2.d, rc3.d e rc0.d.


Gli script di controllo del runtime ben scritti dovrebbero accettare almeno l'avvio e l'arresto come parametri di runtime e possono eventualmente accettare parametri aggiuntivi come il riavvio e lo stato. Quando uno script di controllo runtime viene eseguito con un parametro di avvio, avvia i processi per cui è responsabile. Allo stesso modo, il parametro stop fa sì che lo script interrompa tali processi.

All'interno delle directory di controllo del runtime ci sono un numero di script di controllo di runtime che iniziano con K maiuscole o S seguite da due numeri. Quando il sistema cambia il suo livello di esecuzione, gli script nella directory corrispondente vengono eseguiti in ordine. Quindi, uno script che inizia con K00 verrà eseguito prima di K99 che verrà eseguito prima di S00. Uno script che inizia con la lettera K è uno script kill e verrà eseguito con un parametro stop. Gli script S verranno eseguiti con un parametro di avvio. In questo modo, è possibile utilizzare lo stesso script per avviare e arrestare i processi.

È normale posizionare uno script generico, ad esempio un servizio di news, in /etc/init.d e quindi creare collegamenti logici a tale script nella directory rc # .d appropriata preceduta da una combinazione adatta di K o S e numero. Ad esempio, per creare uno script kill iniziale in rc0.d per un newservice di script rc situato in /etc/init.d, esegui come superutente:

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

Quando si spegne o si riavvia il sistema, si modifica il livello di esecuzione su 6 o 5, rispettivamente. Non ci sono directory /etc/rc5.d o /etc/rc6.d. Poiché il passaggio al livello di esecuzione 0 (prompt di openboot) implica la stessa procedura di arresto o riavvio, i livelli 5 e 6 condividono la directory /etc/rc0.d. È importante includere gli script di kill per servizi come i database che potrebbero essere danneggiati se non fossero correttamente chiusi.

Per un esempio di uno script di controllo runtime, vedere la ricetta tecnica Creare uno script di controllo di runtime Solaris di base