Iniciando programa al arrancar con pantalla

Iniciando programa al arrancar con pantalla

Aquí está mi script en init.d (Debian Linux)

#! /bin/sh
# /etc/init.d/blah
#

# Some things that run always
touch /var/lock/McMyAdmin

# Carry out specific functions when asked to by the system
case "$1" in
start)
echo "Starting McMyAdmin "
screen -dmS Minecraft
sleep 2
screen -S Minecraft -X stuff "bash /opt/McMyAdmin/start.sh"`echo -ne '\015'`
;;
stop)
echo "Stopping McMyAdmin"
screen -S Minecraft -X stuff "\quit"`echo -ne '\015'`
;;
*)
echo "Usage: /etc/init.d/McMyAdmin {start|stop}"
exit 1
;;
esac

exit 0

Mi problema es que al iniciar la sesión de pantalla no pasa nada. Si escribo línea por línea funciona bien, pero en el script no funciona nada. Crea la sesión de pantalla pero no se le envía ningún comando. ¿Qué estoy haciendo mal?

Respuesta1

Debe acceder al directorio de instalación de McMyAdmin antes de poder ejecutarlo. No puede ejecutar su script start.sh desde otro directorio.

Cambiar:

screen -S Minecraft -X stuff "bash /opt/McMyAdmin/start.sh"`echo -ne '\015'`

a

cd /opt/McMyAdmin/
screen -S Minecraft -X stuff "sh start.sh"`echo -ne '\015'`

Además, no es una idea brillante poner McMyAdmin en /opt/ y ejecutarlo como root. En su lugar, debe crear un usuario solo para ello y usar una línea @reboot en el crontab de ese usuario, o usar su en su script de inicio para cambiar qué usuario se usa para ejecutar el servidor.

información relacionada