Existe um mecanismo para executar um “serviço” por um usuário não root?

Existe um mecanismo para executar um “serviço” por um usuário não root?

Existe uma maneira de ter um processo em segundo plano em execução contínua que possa ser controlado por mim (um usuário normal não root)?

Tudo o que preciso fazer é iniciar, parar e reiniciar o processo. Monitorar por PID e enviar SIGHUP ou SIGINT para encerramento é adequado. Não há problema em usar um script bash complicado, não precisa ser algo que abrange todo o sistema. Só para mim.

Eu também preciso muito que ele não pare quando eu sair do ssh.

Existe uma maneira de fazer isso no RHEL 6.4?

Responder1

tela ou tmux

Claro que você pode iniciar processos e executá-los continuamente usando um multiplexador de terminal, como screen ou tmux. Os processos podem continuar a persistir em uma sessão de tela ou tmux, e você pode conectar/desconectar a qualquer um (tela ou tmux) conforme necessário.

plano de fundo

Você pode executar qualquer processo que desejar, colocá-lo em segundo plano e desconectá-lo do terminal atual usando o comando disown.

$ disown -a

Além disso, se você deseja apenas iniciar um processo e não precisar colocá-lo em segundo plano, disownvocê pode usar o comando nohup.

$ nohup myexec &

Ao sair do shell, myexecele continuará em execução.

Exemplo

Inicie um processo falso.

$ sleep 12345 &
[1] 24339
$

Certifique-se de que podemos ver:

$ pgrep -f "sleep 12345"
24339

Mas ainda está conectado ao nosso terminal:

$ jobs
[1]+  Running                 sleep 12345 &

Então vamos disownlá:

$ disown -a
$ jobs
$

Veja que ainda está em execução:

$ pgrep -f "sleep 12345"
24339

Agora vamos sair e fazer login novamente. Veja que ainda está lá:

$ pgrep -f "sleep 12345"
24339

Você pode encerrar esse processo a qualquer momento usando meios padrão:

$ pkill -HUP -f "sleep 12345"
$ pgrep -f "sleep 12345"
$ 

O acima enviará o sinal HUPpara um nome de processo que corresponda ao padrão “sleep 12345”. A verificação dupla mostra que agora desapareceu.

informação relacionada