Qual é a melhor maneira de conectar-se a um programa cron sem TTY

2

Minha VM ubuntu não executa cron jobs com um TTY (nem mesmo quando eu efetuo login e executo o comando a partir do env do usuário).

Por causa disso, o cron não pode executar tmux ou screen , impedindo que programas (especificamente rtorrent neste caso) sejam executados em segundo plano de uma maneira simples e conectável.

Qual é a melhor abordagem para executar um programa como rtorrent na inicialização, facilitando anexar, desanexar e matar o processo de qualquer terminal?

Eu suponho que apenas executando o equivalente a rtorrent & deveria fazê-lo, mas isso não é tão conveniente quanto o screen / tmux.

    
por tbg 05.08.2017 / 03:49

1 resposta

6

Se você usar a opção -d com tmux new , ela não será anexada ou exigirá um tty. De man tmux :

new-session [-AdDEP] [-c start-directory] [-F format] [-n window-name]
            [-s session-name] [-t group-name] [-x width] [-y height]
            [shell-command]
            (alias: new)

Create a new session with name session-name.

The new session is attached to the current terminal unless -d is given. [...]

Por exemplo:

tmux new -d -s rtorrent rtorrent

Isso cria uma nova sessão tmux chamada "rtorrent" e executa rtorrent dentro dela.

Provavelmente você precisará configurar ~/.tmux.conf e executar um script para iniciar rtorrent (e não apenas o comando rtorrent ) para configurar o ambiente de execução corretamente.

O usuário que possui o cron job pode se conectar à sessão a qualquer momento com:

tmux attach -t rtorrent

O equivalente para Screen é

screen -d -m -S rtorrent rtorrent

da tarefa cron e screen -S rtorrent -rd para anexar mais tarde.

    
por 05.08.2017 / 04:44