GNU/Linux >> Tutoriels Linux >  >> Linux

Exécuter la commande Nohup avec entrée ?

Sous UNIX, j'ai un processus que je veux exécuter en utilisant nohup. Cependant, ce processus attendra à un moment donné à une invite où je dois entrer yes ou no pour que ça continue. Jusqu'à présent, sous UNIX, j'ai fait ce qui suit :

nohup myprocess <<EOF
y
EOF

Donc, je démarre le processus 'myprocess' en utilisant nohup et pipe dans un fichier avec 'y' puis ferme le fichier. Les lignes ci-dessus sont en fait trois commandes distinctes - c'est-à-dire que j'appuie sur Entrée sur la première ligne sous UNIX, puis j'obtiens une invite dans laquelle j'entre "y", puis j'appuie sur Entrée pour enfin taper "EOF" et appuyer à nouveau sur Entrée. Cela fonctionne donc parfaitement, mais mon problème est ci-dessous.

Je veux maintenant exécuter ceci en Perl, mais je ne sais pas comment je peux exécuter cette commande, car elle est sur trois lignes. Je ne sais pas si ce qui suit fonctionnera :

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

Réponse acceptée :

Si vous voulez juste écrire un seul y au stdin du processus, vous pouvez faire ceci :

(echo y | nohup myprocess) &

Si vous voulez continuer à écrire y pour chaque invite qui apparaît, le coreutil yes existe exactement dans ce but - il continuera à écrire tout ce que vous lui direz sur stdout. Sa sortie par défaut est "y", donc vous pouvez simplement :

(yes | nohup myprocess) &

mais si vous avez besoin d'autre chose, vous pouvez le passer en argument


Linux
  1. Commande Nohup avec exemples

  2. Commande JQ sous Linux avec exemples

  3. Exécuter une commande une fois par ligne d'entrée canalisée ?

  4. Comment exécuter la commande bash avec les privilèges sudo en Java ?

  5. Commande Linux/Unix pour joindre N lignes d'entrée avec des délimiteurs ?

Commande Netcat (nc) avec exemples

15 Commande Linux ps avec exemples

Comment exécuter une commande Shell avec Python

Commande Nohup Linux avec des exemples

Commande d'historique avec exemples

Commande Nohup sous Linux