UNIXでは、nohupを使用して実行したいプロセスがあります。ただし、このプロセスは、ある時点で、yes
を入力する必要があるプロンプトで待機します。 またはno
それが続くために。これまでのところ、UNIXでは次のことを行っています。
nohup myprocess <<EOF
y
EOF
そこで、nohupを使用してプロセス「myprocess」を開始し、「y」を使用してファイルをパイプ処理してから、ファイルを閉じます。上記の行は、事実上3つの別々のコマンドです。つまり、UNIXの最初の行でEnterキーを押すと、「y」と入力するプロンプトが表示され、Enterキーを押して、最後に「EOF」と入力し、もう一度Returnキーを押します。したがって、これは完全に機能しますが、私の問題は以下のとおりです。
これをPerlで実行したいのですが、3行以上あるため、このコマンドを実行する方法がわかりません。以下が機能するかどうかはわかりません:
my $startprocess = `nohup myprocess <<EOF &
y
EOF
`
承認された回答:
単一のy
を記述したいだけの場合 プロセスの標準に対して、これを行うことができます:
(echo y | nohup myprocess) &
y
を書き続けたい場合 表示されるすべてのプロンプトに対して、coreutilyes
まさにこの目的のために存在します—それはあなたがstdoutにそれを言うものは何でも書き続けます。デフォルトでは「y」を出力するため、次のことができます。
(yes | nohup myprocess) &
しかし、何か他のものが必要な場合は、引数として渡すことができます