プロセスをbashスクリプトからバックグラウンドに強制する

Niksac

私はbashスクリプトを壊そうとしています-とりわけ、sunwaitを開始します:

/root/bin/sunwait sun up -0:00:00 54.453158N 11.013071E; mycommand &

Sunwaitは、特定のコマンドを実行する前に、天文学的なイベントが発生するのを待つバイナリです。スクリプトが他のことを続行できるように、最後にアンパサンドを使用してバックグラウンドに送信しましたが、これは機能せず、理由がわかりません。

シェルで直接コマンドを実行しても、サンウェイトはバックグラウンドに送信されません。私もnohupを試しましたが成功しませんでした。

私はUbuntu14.04サーバーLTSを使用しています。なぜ機能しないのですか?

カミル・マシオロフスキー

Sunwaitは、特定のコマンドを実行する前に、天文学的なイベントが発生するのを待つバイナリです。

あなたの構文を調べた後、私はこの解釈が間違っていると思います。あなたの例でsunwaitは何も実行しません。実際、コマンドは与えられていません。私はよく知らないのですsunwaitが、簡単な調査で、天文学的な出来事を待ってから終了することがわかりました。

あなたの場合、それは次のようになります:

  • シェルは行を読み取り、セミコロンに遭遇;し、その時点まですべてを実行しsunwaitます。つまり、コマンドラインオプションを使用します。
  • シェルはsunwait終了するの待ちます。
  • 最終的にsunwait終了するため、シェルはmycommandアンパサンドのためにバックグラウンドで実行し&ます。

したがって、あなたの質問に対する直接の答えが最も一般的です。それは機能している(あなたが命令したことをしている)ので、「機能している」(あなたが望むことをしていない)ではありません。

修正:

  1. どちらか { /root/bin/sunwait sun up -0:00:00 54.453158N 11.013071E; mycommand; } &

  2. または /root/bin/sunwait sun up -0:00:00 54.453158N 11.013071E && mycommand &

In the first line the two commands inside {} appear to & as if it was single command, so everything goes to the background. Simple and often good enough. The second case is slightly different: mycommand will run if and only if sunwait finishes without error (unless sunwait is poorly coded). It is the behavior you expected in the first place, isn't it?. Personally I find the second fix more elegant. Imagine you made a mistake typing mycommand and realized after a while that it is a ticking bomb. Killing sunwait will trigger the bomb in 1st scenario, defuse it in 2nd.

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

プロセスをbashスクリプトからバックグラウンドに強制する

分類Dev

スクリプトを終了するときにbashスクリプトのバックグラウンドプロセスを強制終了する

分類Dev

PHP / bashスクリプトからバックグラウンドプロセスを開始/終了するにはどうすればよいですか?

分類Dev

バックグラウンドプロセスからログをリダイレクトする方法

分類Dev

同じbashスクリプトから起動されたバックグラウンドプロセスの実行ステータスを確認する

分類Dev

macOSでbashスクリプトを見つけるためにpgrepする方法(またはバックグラウンドで実行されているスクリプトをプログラムで強制終了する方法)?

分類Dev

コマンドプロンプトからバックグラウンドで実行されている特定のプロセスを強制終了するにはどうすればよいですか?

分類Dev

バックグラウンドプロセスからスクリプトを終了しますか?

分類Dev

バックグラウンドプロセスからスクリプトを終了しますか?

分類Dev

パイプされたバックグラウンドプロセスを強制終了するにはどうすればよいですか?

分類Dev

コンソールのctrl + cがバックグラウンドプロセスを強制終了する理由

分類Dev

バックグラウンドプロセスを強制終了せずにREPLを終了します

分類Dev

nohupのバックグラウンドプロセスが強制終了されるのはなぜですか?

分類Dev

zshのすべてのバックグラウンドプロセスを強制終了する方法

分類Dev

タスクを削除すると、バインド時にバックグラウンドプロセスが強制終了されます

分類Dev

シェルスクリプトが終了したときにバックグラウンドプロセス/ジョブを強制終了するにはどうすればよいですか?

分類Dev

Bash:バックグラウンドプロセスからメッセージを受信する

分類Dev

バックグラウンドワーカー内の外部プロセスを強制終了する

分類Dev

プロセス置換後、シェルスクリプトにコマンドをフォアグラウンドに保持するように強制する

分類Dev

バックグラウンドのPythonプロセスを強制終了するにはどうすればよいですか?

分類Dev

バックグラウンドプロセスとしてスクリプトを作成するには

分類Dev

バックグラウンドでプロセスを開始し、タスクを実行してから、バックグラウンドでプロセスを強制終了します

分類Dev

コマンドラインからPHPスクリプトをバックグラウンドプロセスとして実行する

分類Dev

ColorOSのタスクマネージャーからアプリを削除するとバックグラウンドサービスが強制終了する

分類Dev

プロセスをバックグラウンドにドロップする

分類Dev

プロンプトをハイジャックせずにバックグラウンドプロセスから進行状況をエコーする

分類Dev

Oreoのバックグラウンドタスクをプログラムで強制終了するにはどうすればよいですか?

分類Dev

Bash-バックグラウンドのRubyスクリプトからSTDOUTを取得する方法

分類Dev

Windowsフォームはアプリの終了時にバックグラウンドプロセスを強制終了します

Related 関連記事

  1. 1

    プロセスをbashスクリプトからバックグラウンドに強制する

  2. 2

    スクリプトを終了するときにbashスクリプトのバックグラウンドプロセスを強制終了する

  3. 3

    PHP / bashスクリプトからバックグラウンドプロセスを開始/終了するにはどうすればよいですか?

  4. 4

    バックグラウンドプロセスからログをリダイレクトする方法

  5. 5

    同じbashスクリプトから起動されたバックグラウンドプロセスの実行ステータスを確認する

  6. 6

    macOSでbashスクリプトを見つけるためにpgrepする方法(またはバックグラウンドで実行されているスクリプトをプログラムで強制終了する方法)?

  7. 7

    コマンドプロンプトからバックグラウンドで実行されている特定のプロセスを強制終了するにはどうすればよいですか?

  8. 8

    バックグラウンドプロセスからスクリプトを終了しますか?

  9. 9

    バックグラウンドプロセスからスクリプトを終了しますか?

  10. 10

    パイプされたバックグラウンドプロセスを強制終了するにはどうすればよいですか?

  11. 11

    コンソールのctrl + cがバックグラウンドプロセスを強制終了する理由

  12. 12

    バックグラウンドプロセスを強制終了せずにREPLを終了します

  13. 13

    nohupのバックグラウンドプロセスが強制終了されるのはなぜですか?

  14. 14

    zshのすべてのバックグラウンドプロセスを強制終了する方法

  15. 15

    タスクを削除すると、バインド時にバックグラウンドプロセスが強制終了されます

  16. 16

    シェルスクリプトが終了したときにバックグラウンドプロセス/ジョブを強制終了するにはどうすればよいですか?

  17. 17

    Bash:バックグラウンドプロセスからメッセージを受信する

  18. 18

    バックグラウンドワーカー内の外部プロセスを強制終了する

  19. 19

    プロセス置換後、シェルスクリプトにコマンドをフォアグラウンドに保持するように強制する

  20. 20

    バックグラウンドのPythonプロセスを強制終了するにはどうすればよいですか?

  21. 21

    バックグラウンドプロセスとしてスクリプトを作成するには

  22. 22

    バックグラウンドでプロセスを開始し、タスクを実行してから、バックグラウンドでプロセスを強制終了します

  23. 23

    コマンドラインからPHPスクリプトをバックグラウンドプロセスとして実行する

  24. 24

    ColorOSのタスクマネージャーからアプリを削除するとバックグラウンドサービスが強制終了する

  25. 25

    プロセスをバックグラウンドにドロップする

  26. 26

    プロンプトをハイジャックせずにバックグラウンドプロセスから進行状況をエコーする

  27. 27

    Oreoのバックグラウンドタスクをプログラムで強制終了するにはどうすればよいですか?

  28. 28

    Bash-バックグラウンドのRubyスクリプトからSTDOUTを取得する方法

  29. 29

    Windowsフォームはアプリの終了時にバックグラウンドプロセスを強制終了します

ホットタグ

アーカイブ