Capistrano compitolancio processo in background nel compito Capistrano
namespace :service do
desc "start daemontools (svscan/supervise/svscanboot)"
task :start, :roles => :app do
sudo "svscanboot&"
end
end
Ora, questo non funziona: il processo di svscanboot semplicemente non funziona. Questo mi ha aiutato a trovare sleep
: https://github.com/defunkt/resque/issues/284 altre fonti mi ha indirizzato a nohup
, redirection
e pty => true
, quindi ho provato tutti questi.
Ora, qualcuno potrebbe spiegarmi perché ho bisogno della dichiarazione di sonno e che differenza fa nohup? Per la registrazione tutto quanto sopra funziona ugualmente bene se eseguito da shell utente, il problema è solo nel contesto di capistrano.
grazie
'nohup' garantisce che il comando non termini quando riceve il segnale' SIGHUP' dopo che la shell termina. Tuttavia, sono anche curioso di sapere perché il comando del sonno fa la differenza. – Graeme
Anche il sonno fa la differenza nel mio mondo. È stupefacente il motivo per cui un compito tanto semplice è così incredibilmente difficile con Capistrano. – cbmanica
Vedo lo stesso comportamento. E chiedendo anche la stessa cosa. – aslakjo