GNU/Linux >> Linux の 問題 >  >> Linux

入力でNohupコマンドを実行しますか?

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) &

しかし、何か他のものが必要な場合は、引数として渡すことができます


Linux
  1. LinuxでのJQコマンドと例

  2. パイプ入力の行ごとに1回コマンドを実行しますか?

  3. N行の入力を区切り記号で結合するLinux/Unixコマンド?

  1. 例を含むwcLinuxコマンド

  2. 例を含むNohupコマンド

  3. Javaでsudo権限でbashコマンドを実行するには?

  1. Linuxのソートコマンドと例

  2. Linuxでのエコーコマンド(例付き)

  3. Linuxでのmanコマンドと例