Buenos días, programadores. Tengo un problema. Por favor ayuda. Estoy creando un servicio, que debe cargarse automáticamente cuando se carga Linux. Entonces, copié la secuencia de comandos en el directorio /etc/rc.d/init.d o /etc/init.d/. Pero cuando estoy preformación el comandoEl servicio no es compatible con chkconfig
chkconfig --add listOfProcesses
se produce un error:
service listOfProcesses doesn't support chkconfig
Aquí es el contenido del guión. Encontré la primera versión en Google y la usé como patrón.
#!/bin/bash
# listOfProcesses Start the process which will show the list of processes
# chkconfig: 345 110 02
# description: This process shows current time and the list of processes
# processname: listOfProcesses
### BEGIN INIT INFO
# Provides:
# Required-Start:
# Required-Stop:
# Default-Start: 3 4 5
# Default-Stop: 0 1 2 6
# Short-Description: shows current time and the list of processes
# Description: This process shows current time and the list of processes
### END INIT INFO
# Source function library.
KIND="listOfProcesses"
start() {
echo -n $"Starting $KIND services: "
daemon /home/myscript
echo
}
stop() {
echo -n $"Shutting down $KIND services: "
killproc /home/myscript
echo
}
restart() {
echo -n $"Restarting $KIND services: "
killproc /home/myscript
daemon /home/myscript
echo
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 1
esac
exit $?
exit 0;
La segunda versión se realizó a partir de la secuencia de comandos cron. Encontré el script cron, lo copié y lo cambié, así que lo usé como patrón.
#!/bin/sh
#
# crond Start/Stop the cron clock daemon.
#
# chkconfig: 2345 90 60
# description: cron is a standard UNIX program that runs user-specified \
# programs at periodic scheduled times. vixie cron adds a \
# number of features to the basic UNIX cron, including better \
# security and more powerful configuration options.
### BEGIN INIT INFO
# Provides: crond crontab
# Required-Start: $local_fs $syslog
# Required-Stop: $local_fs $syslog
# Default-Start: 2345
# Default-Stop: 90
# Short-Description: run cron daemon
# Description: cron is a standard UNIX program that runs user-specified
# programs at periodic scheduled times. vixie cron adds a
# number of features to the basic UNIX cron, including better
# security and more powerful configuration options.
### END INIT INFO
rights=whoami;
root=root;
[ -f "$rights"=="$root" ] || {
echo "this programme requires root rights";
exit 1;
}
# Source function library.
. /etc/rc.d/init.d/functions
start() {
echo -n $"Starting $KIND services: ";
daemon showListOfProcesses;
}
stop() {
echo -n $"Shutting down $KIND services: ";
killproc showListOfProcesses;
}
restart() {
stop
start
}
reload() {
restart;
}
force_reload() {
# new configuration takes effect after restart
restart
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
reload)
reload
;;
force-reload)
force_reload
;;
*)
echo $"Usage: $0 {start|stop|restart|reload|force-reload}"
exit 2
esac
exit $?
# Show the list of processes
function showListOfProcesses {
top > /dev/tty2;
}
Pero la situación no ha cambiado. ¿Cuál es el problema? ¿Qué está mal en el guión?
Pero cuando cambio el nombre de la secuencia de comandos, dice que el servicio no es compatible con chkc onfig El problema ha sido resuelto.No sé lo que quería bash, pero en algún momento este script ha funcionado normalmente – user565447
Esta respuesta en realidad no señala todas las causas de raíz. Sí, es posible que la línea crond haya sido parcialmente responsable, pero la línea 'chkconfig:' tiene un valor incorrecto. ** La prioridad de inicio debe ser un valor de 0-99 **. –
Jake88