Ubuntu Adding Startup Daemon/Process
Reading time: 8 – 14 minutesAquest és un d’aquells articles que mai sé com titular en català. Així doncs s’ha quedat en anglès. Bàsicament es tracta de documentar una miqueta les suors que em va costar saber quin carai era l’equivalent al /etc/conf.d/local.start de Gentoo en Ubuntu. De fet, al final no el vaig trobar. El que he hagut de fer és crear un fitxer a /etc/init.d i llençar-lo com un dimoni d’arrancada en els runlevels que m’interessen. De fet, aquesta solució és més neta que la que jo volia aplicar inicialment però al final he perdut una bona estona per saber-ho fer i per això he decidit documentar-ho.
El problema concret que tenia és que volia llençar el Abyss Webserver al iniciar la màquina. Concretament l’ordre per llençar-lo és:
# su usuari /opt/abyssws/abyssws -d
Doncs bé per crear el fitxer que fes aquesta crida t’has de basar en el fitxer /etc/init.d/skeleton. Skeleton usa el mateix script que en Gentoo el start-stop-daemon per fer la crida del dimoni d’Abyss. Per saber més detalls sobre com funciona aquest complert script us recomano mirar el man de la comanda.
La comanda anterior per llençar l’Abyss basada en start-stop-daemon seria així:
start-stop-daemon --start --quiet --pidfile /var/run/abyssws.pid -u usuari --exec /opt/abyssws/abyssws -- -d
Pel que fa a l’script sencer també podeu usar un generador de fitxers d’inici de dimonis que he trobat a Robert Pectol’s Ubuntu Linux Projects Website – Startup Script Generator el problema és que aquest generador és molt bàsic i no suporta el pas de paràmetres contra el start-stop-daemon. O sigui, que no podriem definir quin és l’usuari que ha de llençar el dimoni.
Després de crear l’script que llençarà el dimoni només cal afegir-lo als runlevels que ens interessin. Per exemple, si volem que estigui disponible en qualsevol runlevel podem fer:
# update-rc.d script defaults
Si el que volem és iniciar-lo l’últim (posició 99) de la seqüència d’arrancada en els runlevels 2, 3, 4 i 5 la comanda seria així:
# update-rc.d -f script start 99 2 3 4 5
Si el que no sabeu és en quin runlevel esteu treballant és tan senzill com escriure runlevel i us informarà del runlevel actual. Una petita referència de quins són els runlevels existents la podeu trobar aquí.