Estoy tratando de agregar al inicio automático en el momento de arranque un servicio de Linux a través de
chkconfig -add <servicename>
y recibo un mensaje que dice
service <servicename> does not support chkconfig
Estoy usando Red Hat Enterprise 4. La secuencia de comandos que estoy tratando de agregar al inicio automático en el momento de arranque es la siguiente:
#!/bin/sh
soffice_start() { if [ -x /opt/openoffice.org2.4/program/soffice ]; then
echo "Starting Open Office as a Service"
#echo " soffice -headless -accept=socket,port=8100;urp;StarOffice.ServiceManager
-nofirststartwizard"
/opt/openoffice.org2.4/program/soffice
-headless -accept="socket,host=0.0.0.0,port=8100;urp;StarOffice.ServiceManager"
-nofirststartwizard & else
echo "Error: Could not find the soffice program. Cannot Start SOffice." fi }
soffice_stop() { if [ -x /usr/bin/killall ]; then
echo "Stopping Openoffice"
/usr/bin/killall soffice 2> /dev/null else
echo "Eroor: Could not find killall. Cannot Stop soffice." fi }
case "$1" in 'start') soffice_start ;; 'stop') soffice_stop sleep 2 ;; 'restart') soffice_stop sleep 5 soffice_start ;; *) if [ -x /usr/bin/basename ]; then
echo "usage: '/usr/bin/basename $0' start| stop| restart" else
echo "usage: $0 start|stop|restart" fi esac
Respuestas:
El script debe tener 2 líneas:
por ejemplo:
Después de agregar los encabezados anteriores, puede ejecutar
chkconfig --add <service>
.fuente
Si bien katriel ya ha respondido esto con el mínimo necesario para crear un guión de inicio, creo que también sería útil mirarlo
/etc/init.d/skeleton
y usarlo como plantilla en la que basar su guión de inicio. Terminarás con un script mucho más consistente y legible.fuente
/etc/init.d/skeleton
no está presente en los sistemas RHEL, solo en Debian y relacionados (Ubuntu, creo).Parece que el problema específico de Geo ya se ha resuelto, pero me encontré con un mensaje similar al intentar configurar una aplicación Rails
sidekiq
como un servicio administrado. Explicaré mi solución aquí en caso de que ayude a otros novatos como yo.Estoy trabajando en una instalación de CentOS, y chkconfig ya está configurado con varios otros servicios como httpd, mysql y redis. Tenga en cuenta que la mayoría de los servicios sólo necesitan ser activados en los niveles de ejecución
3
a través5
.Necesitaba agregar un nuevo script para el
sidekiq
servicio, así que tomé el script en https://gist.github.com/CD1212/5326706 , lo modifiqué para que se ajustara a los parámetros de mi aplicación y lo guardé en/etc/rc.d/init.d/sidekiq
(propiedad de root como todos los otros guiones allí).Sin embargo, cuando intenté registrar este nuevo servicio, recibí el error chkconfig:
Después de leer un poco más , descubrí que los números de prioridad definidos en la parte superior de cada script chkconfig deben ser únicos. ¡Un mensaje de error más claro hubiera sido bueno! Otro script tenía el nivel de prioridad de apagado 75, así que cambié el mío a 76 e intenté nuevamente. Aquí está la cabeza de mi script de inicio:
Esta vez,
sudo chkconfig --add sidekiq
no dio ninguna queja. Luego, cuando corrísudo chkconfig --list sidekiq
, el servicio sidekiq se mostró comoon
para los niveles de ejecución apropiados.fuente
Los números de prioridad no necesitan ser únicos. Solo representan un orden de servicios.
Chkconfig no tuvo problemas al agregar el servicio "it". De lo contrario, estaría limitado a 100 servicios.
También en mi ejemplo, se ejecutaría antes de Oracle porque los scripts se ejecutan alfabéticamente.
fuente