GNU/Linux >> Linux Esercitazione >  >> Linux

Eseguire il comando Nohup con l'input?

In UNIX, ho un processo che voglio eseguire usando nohup. Tuttavia, questo processo a un certo punto attenderà una richiesta in cui devo inserire yes o no perché continui. Finora, in UNIX ho fatto quanto segue:

nohup myprocess <<EOF
y
EOF

Quindi avvio il processo "myprocess" usando nohup e pipe in un file con "y", quindi chiudo il file. Le righe sopra sono effettivamente tre comandi separati, ovvero premo invio sulla prima riga in UNIX, quindi ricevo un messaggio in cui inserisco "y" e quindi premo invio per infine digitare "EOF" e premere nuovamente Invio. Quindi funziona perfettamente, ma il mio problema è di seguito.

Voglio ora eseguirlo in Perl, ma non sono sicuro di come eseguire questo comando, poiché è su tre righe. Non so se funzionerà quanto segue:

my $startprocess = `nohup myprocess <<EOF &
y
EOF
`

Risposta accettata:

Se vuoi solo scrivere un singolo y allo stdin del processo, puoi farlo:

(echo y | nohup myprocess) &

Se vuoi continuare a scrivere y per ogni prompt che viene visualizzato, coreutil yes esiste esattamente per questo scopo:continuerà a scrivere qualunque cosa gli dici a stdout. L'impostazione predefinita è "y", quindi puoi semplicemente:

(yes | nohup myprocess) &

ma se hai bisogno di qualcos'altro puoi passarlo come argomento


Linux
  1. Comando Nohup con esempi

  2. Comando JQ in Linux con esempi

  3. Eseguire un comando una volta per riga di input convogliato?

  4. Come eseguire il comando bash con privilegi sudo in Java?

  5. Comando Linux/Unix per unire N righe di input con delimitatori?

Comando Netcat (nc) con esempi

15 Comando Linux ps con esempi

Come eseguire un comando Shell con Python

Comando Nohup Linux con esempi

Comando della cronologia con esempi

Comando Nohup in Linux