Iniciando o script na tela com o cron

1

Peço desculpas se isso foi solicitado antes, mas não tenho certeza de como questionar uma consulta de pesquisa para isso. Eu sou extremamente novo no Linux e tenho aprendido enquanto resolvo problemas.

Estou tentando configurar as tarefas do cron para reiniciar um servidor de jogo que estou executando.

Atualmente meu crontab se parece com isso

#backup world as instructed by https://github.com/g1franc/SEDS-Setup
0 0 * * * /home/root/spaceengineers/start.sh backupworld
#close server
1 0 * * * /usr/bin/screen -S spaceengineers -X stuff "^C"
#close screen
2 0 * * * /usr/bin/screen -S spaceengineers -X stuff "^M"
#recreate server
3 0 * * * /home/root/spaceengineers/start.sh

Agora, no mundo de backup, recebo meu arquivo syslog, localizado em /var/log i get

May 24 00:00:01 SpaceEngineers CRON[1958]: (root) CMD (/home/root/spaceengineers/start.sh backupworld)
May 24 00:00:01 SpaceEngineers CRON[1957]: (CRON) info (No MTA installed, discarding output)

e isso também é o mesmo com o servidor de recriação

May 24 00:03:01 SpaceEngineers CRON[2269]: (root) CMD (/home/root/spaceengineers/start.sh /usr/bin/screen -x spaceengineers)
May 24 00:03:01 SpaceEngineers CRON[2268]: (CRON) info (No MTA installed, discarding output)

Os outros comandos funcionam perfeitamente bem.

agora, antes que alguém questione por que eu estruturei meu código da maneira que eu tenho, é porque o tutorial que eu estava seguindo diz para iniciar o servidor via ~/spaceengineers/start.sh -x spaceengineers e pelo que li eu preciso fazer / usr / bin / screen para acessar qualquer comando de tela em Cron

O que estou fazendo de errado e o que preciso fazer para corrigir meus problemas?

EDITED: Alterado o crontab para corresponder ao conteúdo atual no meu servidor, os problemas permanecem os mesmos

Pastebin de start.sh

link

    
por TheAngryBr1t 23.05.2015 / 19:11

2 respostas

0

Você pode verificar a sintaxe da tela GNU para esta linha:

3 0 * * * /home/root/spaceengineers/start.sh /usr/bin/screen -x spaceengineers

Eu teria esperado algo como:

3 0 * * * /usr/bin/screen -S spaceengineers -X stuff 'command with newline' 

No entanto, usar o -X significa que screen espera comandos de tela e não que um script seja executado.

Portanto, você precisa usar o comando screen stuff de acordo com esta pergunta sobre SU

screen -S sessionname -X stuff 'command''echo -ne '5''

Atualizar

Experimente /bin/bash ou onde quer que o Shell que você usa esteja localizado.

 3 0 * * * /bin/bash /home/root/spaceengineers/start.sh

Talvez adicione conteúdo de start.sh para ajudar a depurar.

Você pode encontrar o shell com o comando which . Pode ter que sudo ou ser root para descobrir.

    
por 24.05.2015 / 00:50
-1

@daily /usr/bin/screen -dms aquaticscenery /ig.py & & python ig.py

    
por 19.04.2017 / 15:12