Você pode usar o crontab. O Crontab pode iniciar um processo a cada minuto, o processo deve verificar se já está em execução e sair se estiver. link
Eu tenho um servidor virtual rodando o Ubuntu 14.04 LTS x64 e quero criar um processo persistente que reinicia com o sistema e quando ele falha.
Para fazer isso, adicionei as seguintes linhas ao "inittab" no diretório-etc:
test:5:respawn:echo "HELLO TEST" > /test.log
sometestname:234:/var/path/to/process/myprocess
Depois de executar "init q" ou "telinit q", nada acontece. O arquivo test.log não é criado, o processo não é iniciado (não está listado ao usar o pstree) e não há nada no syslog. Reiniciar o servidor também não ajuda.
Eu também tentei usar o systemd para criar um novo serviço, criando um novo "myprocess.service" em "/ etc / systemd / system /" com estes comandos:
[Unit]
Description=Process Name
[Service]
ExecStart=/var/path/to/process/myprocess
Restart=restart-always
[Install]
WantedBy=multi-user.target
Novamente, depois que o servidor reiniciar, o processo não estará lá.
Existem outras maneiras de criar um processo persistente no Ubuntu?
Além disso, o processo atua como um servidor, mas também pode aceitar entradas do usuário. Como ele será executado como um processo em segundo plano na maioria das vezes, é possível "anexá-lo" ao console principal por capricho para executar alguns comandos e desanexá-lo posteriormente? Estou usando putty para acesso remoto ao servidor.
Você pode usar o crontab. O Crontab pode iniciar um processo a cada minuto, o processo deve verificar se já está em execução e sair se estiver. link
O inittab saberá que o processo está saindo muito rápido e parará. Tente um pequeno script de shell que aguarde 60 segundos antes de sair. Seu comando echo não funcionará corretamente.