GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Nohup-Befehl mit Eingabe ausführen?

In UNIX habe ich einen Prozess, den ich mit nohup ausführen möchte. Dieser Vorgang wartet jedoch irgendwann auf eine Eingabeaufforderung, an der ich yes eingeben muss oder no damit es weitergeht. Bisher habe ich in UNIX Folgendes getan:

nohup myprocess <<EOF
y
EOF

Also starte ich den Prozess ‚myprocess‘ mit nohup und pipe in einer Datei mit ‚y‘ und schließe dann die Datei. Die obigen Zeilen sind praktisch drei separate Befehle – d. h. ich drücke die Eingabetaste in der ersten Zeile in UNIX, dann erhalte ich eine Eingabeaufforderung, wo ich „y“ eingebe und dann die Eingabetaste drücke, um schließlich „EOF“ einzugeben und erneut die Eingabetaste zu drücken. Das funktioniert also perfekt, aber mein Problem ist unten.

Ich möchte das jetzt in Perl ausführen, bin mir aber nicht sicher, wie ich diesen Befehl ausführen kann, da er über drei Zeilen geht. Ich weiß nicht, ob Folgendes funktioniert:

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

Akzeptierte Antwort:

Wenn Sie nur ein einzelnes y schreiben möchten zur stdin des Prozesses können Sie Folgendes tun:

(echo y | nohup myprocess) &

Wenn Sie weiterhin y schreiben möchten für jede Eingabeaufforderung, die auftaucht, das coreutil yes existiert genau für diesen Zweck – es schreibt weiter, was Sie ihm auf stdout sagen. Standardmäßig wird „y“ ausgegeben, also können Sie einfach:

(yes | nohup myprocess) &

aber wenn Sie etwas anderes brauchen, können Sie es als Argument übergeben


Linux
  1. Nohup-Befehl mit Beispielen

  2. JQ-Befehl in Linux mit Beispielen

  3. Einen Befehl einmal pro Zeile der Piped-Eingabe ausführen?

  4. Wie führe ich einen Bash-Befehl mit sudo-Berechtigungen in Java aus?

  5. Linux/Unix-Befehl zum Verbinden von N Eingabezeilen mit Trennzeichen?

Netcat (nc) Befehl mit Beispielen

15 Linux-PS-Befehl mit Beispielen

So führen Sie einen Shell-Befehl mit Python aus

Nohup Linux-Befehl mit Beispielen

Verlaufsbefehl mit Beispielen

Nohup-Befehl unter Linux