Cómo se inician los servicios es muy condicional en la distribución de Linux. Díganos qué está tratando de lograr (y en qué distribución y tal vez Desktop Environment), porque en este momento creo que probablemente no esté pensando en el problema correctamente.
xenoterracide
Respuestas:
23
Para ejecutar un servicio sin o antes de iniciar sesión en el sistema (es decir, "en el arranque"), deberá crear un script de inicio y agregarlo a la secuencia de arranque.
Hay tres partes en un script de servicio: iniciar, detener y reiniciar.
La estructura básica de un script de servicio es:
Una vez que haya ajustado el script a su gusto, simplemente colóquelo en /etc/init.d/
Y agréguelo al proceso de inicio del servicio del sistema (en Fedora, no soy un usuario de Ubuntu,> D):
chkconfig -add <ServiceName>
El servicio se agregará al proceso de inicio del sistema y no tendrá que volver a iniciarlo manualmente.
Tenga en cuenta que mientras iniciar, detener y reiniciar suelen ser suficientes para secuencias de comandos de inicio simples. Probablemente también desee incluir una acción de 'estado', que es fácil en Debian y otras distribuciones que incluyen status_of_proc () en su paquete init-functions. Los paquetes bien administrados incluirán todas las funciones requeridas por el LSB ( refspecs.freestandards.org/LSB_3.1.0/LSB-Core-generic/… ). El script de inicio distribuido con tomcat en Ubuntu contiene todas estas acciones, probablemente apueste a usarlo.
Steven D
19
Dependiendo del sistema de inicio, puede crear una secuencia de comandos de inicio diferente. Fedora le ofrece un sistema de arranque y sistemad para elegir, y, por supuesto, compatibilidad con SysV.
Advenedizo
crear archivo de definición de servicio como /etc/init/custom-tomcat.conf
poner dentro:
start on stopped rc RUNLEVEL=3
respawn
exec /path/to/your/tomcat --and --parameters
Y su Tomcat debería comenzar al iniciar el sistema.
Systemd
crear definición de servicio en /etc/systemd/system/custom-tomcat.service
Tomcat es un servicio bastante común, recomendaría mirar el script de inicio proporcionado por la distribución ya. Lo más probable es que funcione con su binario personalizado, con pocos o ningún ajuste.
Si tiene un crondemonio, uno de los ganchos de tiempo cron predefinidos es @reboot, que naturalmente se ejecuta cuando se inicia el sistema. Ejecute crontab -epara editar su crontabarchivo y agregue una línea:
¿Esto se aplica a todas las startups o solo se reinicia?
WhyNotHugo
Se aplica SOLAMENTE a fcron, no a vixie-cron o cualquier otro cron AFAIK.
Maciej Piechotka
@Maciej Definitivamente funciona para vixie-cron; eso es lo que uso
Michael Mrozek
@Hugo Todas las nuevas empresas
Michael Mrozek
6
Para simplemente ejecutar un script después de que la computadora se inició pero antes de que un usuario inicie sesión, simplemente puede editar el script /etc/rc.local, que está destinado a resolver exactamente esta tarea.
Respuestas:
Para ejecutar un servicio sin o antes de iniciar sesión en el sistema (es decir, "en el arranque"), deberá crear un script de inicio y agregarlo a la secuencia de arranque.
Hay tres partes en un script de servicio: iniciar, detener y reiniciar.
La estructura básica de un script de servicio es:
Una vez que haya ajustado el script a su gusto, simplemente colóquelo en /etc/init.d/
Y agréguelo al proceso de inicio del servicio del sistema (en Fedora, no soy un usuario de Ubuntu,> D):
El servicio se agregará al proceso de inicio del sistema y no tendrá que volver a iniciarlo manualmente.
¡Aclamaciones!
fuente
Dependiendo del sistema de inicio, puede crear una secuencia de comandos de inicio diferente. Fedora le ofrece un sistema de arranque y sistemad para elegir, y, por supuesto, compatibilidad con SysV.
Advenedizo
/etc/init/custom-tomcat.conf
poner dentro:
Y su Tomcat debería comenzar al iniciar el sistema.
Systemd
/etc/systemd/system/custom-tomcat.service
poner dentro:
y habilite su servicio usando
systemctl enable custom-tomcat.service
. Se iniciará cada arranque normal.Por supuesto, hay pocas opciones de configuración más para ambos sistemas init, puede verificarlas en su documentación.
fuente
Tomcat es un servicio bastante común, recomendaría mirar el script de inicio proporcionado por la distribución ya. Lo más probable es que funcione con su binario personalizado, con pocos o ningún ajuste.
fuente
Si tiene un
cron
demonio, uno de los ganchos de tiempo cron predefinidos es@reboot
, que naturalmente se ejecuta cuando se inicia el sistema. Ejecutecrontab -e
para editar sucrontab
archivo y agregue una línea:fuente
Para simplemente ejecutar un script después de que la computadora se inició pero antes de que un usuario inicie sesión, simplemente puede editar el script /etc/rc.local, que está destinado a resolver exactamente esta tarea.
fuente
Puede crear un script más sofisticado, que le permite ejecutar bajo los permisos de un usuario específico, de la siguiente manera:
El script va en /etc/init.d/myservice, y usted inicia el servicio ejecutando:
Lea la página de manual en start-stop-daemon para comprender cómo funciona.
fuente
En Ubuntu o Debian como puedes usar, para agregar
para eliminar
¡Adiós! \ o
es bueno implementar el estado de las funciones y forzar la recarga para que sea compatible con LSB
fuente
service --status-all
lista?