Como uso o crontab para iniciar uma sessão de tela?

10

Eu quero criar uma entrada crontab para que ela inicie a tela, inicie um servidor de jogos e desconecte. Isso é para o caso de o servidor ser reinicializado e eu quero que ele inicie isso automaticamente para mim.

0 0 0 0 0 (comando)

deve ser executado na inicialização.

Ele executa um arquivo shell localizado em ~ / cube / server.sh

    
por Victor 09.02.2011 / 04:15

4 respostas

14

Algo como isso deve funcionar. Este exemplo gera uma tela e executa "top":

screen -d -m top

No seu crontab, como indicado, você gostaria de fazer algo assim:

@reboot /usr/bin/screen -dmS gameserver-screen /opt/mycoolgame/bin/gameserver

É claro que, se o servidor do jogo exigir um conjunto de ambientes "normal", você poderá se aproximar de:

@reboot (. ~/.profile; /usr/bin/screen -dmS gameserver-screen /opt/mycoolgame/bin/gameserver)
    
por 09.02.2011 / 04:19
4

Isso deve ser suficiente ... execute

$ crontab -e

Em seguida, digite:

@reboot screen -dmS Victor
    
por 09.02.2011 / 04:20
4

Apenas por completo, também é possível usar o tmux para o propósito em vez de screen (veja este link para uma comparação):

@reboot tmux new-session -d -s yourNameOfTheSession "your command to run"
    
por 27.01.2013 / 13:23
0

Eu tive uma situação semelhante, mas devido a outras restrições não razoáveis, não pude usar o crontab. Eu realmente tive tela de chamada inittab. (substituiu alguns nomes por informações obscuras):

XXX:5:respawn:/bin/su - useraccount -c "screen -D -m -c /home/xxxxxx/file.screenrc"

Em 'file.screenrc' é onde eu configuro algumas opções:

sessionname obscuresessionname
multiuser on
cd
screen /home/xxxxxxx/programtostart

Desta forma, começou na inicialização, e se o programa morresse ou a tela fosse fechada, ele apareceria novamente. Pode não ter sido considerado convencional, mas eu tive que trabalhar em torno de alguns requisitos de ambiente estranhos. Se precisássemos derrubá-lo, teríamos que comentar essa linha e matar a sessão. Então, quando estiver pronto para trazê-lo de volta, descomente e init q.

    
por 09.02.2011 / 07:00