Ejecute el comando en el arranque como root

9

Necesito ejecutar un script bash en el arranque como superusuario en Xubuntu. No se por donde empezar. Tengo que hacer algo descrito en una guía de Arch Linux. Esa guía dice exactamente:

Agregue lo siguiente al final del archivo: /etc/rc.sysinit

# Do my action
/etc/rc.d/do_my_action

/bin/dmesg >| /var/log/dmesg.log

Pero no tengo /etc/rc.sysinity /etc/rc.d/en Xubuntu. Estoy seguro de que hay equivalentes, ¿verdad?

lorenzo-s
fuente

Respuestas:

9

El archivo que quieres es /etc/rc.local. Este script se ejecutará cerca o al final del proceso de arranque. Por lo tanto, todo debería estar listo para este momento.

Sin embargo, como señaló @ bodhi.zazen, Upstart podría ser la mejor opción para usted. Compruébelo usted mismo .

Nota 1 : en 15.04 y posterior, Ubuntu usa systemdy no Upstart. Por lo tanto, si desea adoptar un enfoque de servicio, vea esta respuesta aquí por @muru

Nota 2 : en 16.10 no existe /etc/rc.localde forma predeterminada, pero si lo crea y lo hace ejecutable ( sudo chmod u+x /etc/rc.local) funcionará porque hay un servicio systemd para extraerlo si existe. No olvide poner una línea exit 0al final del archivo para evitar que cualquier comando fallido provoque que se cuelgue todo el proceso de arranque.

Scott Cesantía
fuente
Entonces, ¿tengo que poner ese código aquí? Por ahora, ese archivo contiene solo exit 0. Y si puedo preguntar, en el arranque cuando rc.localse ejecuta, ¿está listo el sistema de archivos para que también pueda escribir un registro en algún lugar para ese comando que quiero ejecutar?
lorenzo-s
Parece que está intentando ejecutar un script de arranque (init). Ubuntu usa advenedizo. rc.local ejecutará un comando o una serie de comandos en el arranque y puede o no ser tu mejor opción. Qué tratas de hacer exactamente ?
Panther
@ lorenzo-s: Vea mi edición.
Scott Severance
También puede encontrar útil esta respuesta: askubuntu.com/a/20347/3940
Takkat
1
Ok, resolví pasar my_scriptde /usr/local/bina /usr/bin. También puedo guardar el inicio de sesión /var/logcon my_script &>> /var/log/my_script. Muchas gracias.
lorenzo-s