このコマンドを入力すると
nohup CloudCompute.command &
それは結果を生み出す
[1] 782
それが私が望んでいることです。(ちなみにそれはPID番号です)
したがって、実行可能ファイル ( .command
) で同じコマンドを実行し、出力をファイルに追加しようとすると、機能しません。CloudCompute.command
実行時に表示される実際の PID ではなく、出力のみが印刷されます。同じディレクトリにあることは間違いありません。
なぜこのようなことが起こるのでしょうか? 実行可能ファイルで手動で入力した場合と同じ出力を生成するにはどうすればよいでしょうか?
ありがとう
答え1
なぜこうなった?
その出力は次のようになります。
[1] 782
実行可能ファイルからのものではありません。bash
バックグラウンドで何かを実行したときにターミナルに書き込まれるものです。これはジョブ番号[1]
とプロセスの PIDです782
。後でプロセスが終了すると、次のようなものが表示されます。
[1]+ Done command
bash
これも、ジョブ番号 1 のプロセスが終了したことに気付いたためです。
バックグラウンドでコマンドを実行すると、PID は変数に保存されます$!
。
$ sleep 10 &
[1] 1234
$ echo $!
1234
実行可能ファイルで手動で入力した場合と同じ出力を生成するにはどうすればよいですか?
したがって、実行可能ファイルは同じ出力を生成します。