Iniciando o programa na inicialização com tela

0

Aqui está o meu script no 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 '5''
;;
stop)
echo "Stopping McMyAdmin"
screen -S Minecraft -X stuff "\quit"'echo -ne '5''
;;
*)
echo "Usage: /etc/init.d/McMyAdmin {start|stop}"
exit 1
;;
esac

exit 0

Meu problema é que, ao iniciar a sessão de tela, nada acontece. Se eu digitar linha por linha, funciona bem, mas no script nada funciona. Cria a sessão de tela, mas nenhum comando é enviado para ela. o que estou fazendo errado?

    
por Adam Schiavone 03.02.2012 / 21:15

1 resposta

1

Você precisa criar um cd para o diretório de instalação do McMyAdmin antes de poder executá-lo. Você não pode executar o script start.sh de outro diretório.

Alterar:

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

para

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

Além disso, não é uma idéia brilhante colocar o McMyAdmin em / opt / e executá-lo como root. Em vez disso, você deve criar um usuário apenas para ele e usar uma linha @reboot nesse crontab de usuários ou usar o su no seu script para alterar qual usuário é usado para executar o servidor.

    
por 14.02.2012 / 18:55