Se faccioNon funziona niente attraverso un tubo?
nohup cmd1 | cmd2 &
è che lo stesso
nohup "cmd1 | cmd2" &
?
Vorrei che mi nohup
tutto, come cmd1
sarà in ascolto sulla porta 8023.
Se faccioNon funziona niente attraverso un tubo?
nohup cmd1 | cmd2 &
è che lo stesso
nohup "cmd1 | cmd2" &
?
Vorrei che mi nohup
tutto, come cmd1
sarà in ascolto sulla porta 8023.
No, è necessario aggiungere il nohup ai comandi separatamente. Si raccomanda
Qualcosa di simile a questo:
nohup sh -c "cmd1 | cmd2" &
O in alternativa:
nohup $SHELL <<EOF &
cmd1 | cmd2
EOF
nohup cmd1 | cmd2 &
No, ho controllato proprio ora questo è il modo seguente
nohup: ignoring input and redirecting stderr to stdout
Il link è morto. Il collegamento –
@JasmineLognnes contiene lo stesso messaggio di errore pubblicato insieme alla mia risposta. – Skynet
Come un'alternativa a nohup
, consiglio
(cmd1 | cmd2) > logfile < /dev/null 2>&1 &
Per reinstradamento stdin, stdout, e sterr dal terminale, questo raggiunge lo stesso effetto come nohup con una sintassi che, almeno, preferiscono.
Ciò non protegge il comando dal segnale HUP come "nohup". Avresti bisogno di '(trap" "HUP; cmd1 | cmd2) logfile 2> & 1 &' per farlo. –
Vero, ma come scritto, impedisce al terminale di chiusura di inviare l'HUP al processo in primo luogo. –
qualcuno può spiegare cosa è '$ SHELL' e perché ne abbiamo bisogno? –
'$ SHELL' contiene la shell attualmente in esecuzione, nella maggior parte dei sistemi Linux questa sarà'/bin/bash' ma potrebbe essere '/ usr/bin/zsh' o qualcos'altro. Il vantaggio dell'uso della variabile '$ SHELL' è che in questo modo il comando verrà eseguito usando le normali impostazioni della shell. – Wolph
'EOF &' non funziona per me. – RoVo