タグ付けされた質問 「background-process」

「バックグラウンド」プロセスは、「バックグラウンド」で(つまり、バックグラウンドで)実行され、ユーザーの介入なしに実行されるコンピュータープロセスです。このようなプロセスを使用するための一般的なタスクには、ロギング、システムモニタリング、スケジューリング、およびユーザー通知が含まれます。このタグは、バックグラウンドプロセスに関する質問に使用します。

4
あまりにも多くのバックグラウンドジョブを開始するとどうなりますか?
Expectスクリプトを使用して、700個のネットワークデバイスで作業を行う必要があります。順番に実行できますが、これまでの実行時間は約24時間です。これは主に、接続の確立にかかる時間と、これらのデバイス(古いデバイス)からの出力の遅延が原因です。2つの接続を確立し、それらを正常に並列に実行することはできますが、どこまでプッシュできますか? 700個すべてを一度に実行できるとは思いませんが、noにはある程度の制限があります。VMが管理できるTelnet接続の数。 このようなループで700個を開始しようとした場合: for node in `ls ~/sagLogs/`; do foo & done と CPU 12 CPU x Intel(R)Xeon(R)CPU E5649 @ 2.53GHz メモリ47.94 GB 私の質問は: 700のインスタンスすべてをおそらく同時に実行できますか? サーバーが制限に達するまで、どこまで到達できますか? その制限に達すると、次の反復の開始を待つだけfooですか、それともボックスがクラッシュしますか? 残念ながら企業の実稼働環境で実行しているので、何が起こるかを正確に試すことはできません。



2
いくつかの同時コマンドの後にbashコマンドを実行しますか?
いくつかのコマンドを並行して実行したい。これらのコマンドがすべて終了したら、次のコマンドを開始します。私は次のアプローチがうまくいくと思いますが #!/bin/bash command1 & command2 & command3 && command4 しかし、そうではなかった。command4最初の3つのコマンドすべてが完全に終了したときに実行する必要があります。

2
SSHがバックグラウンドプロセスを待たないのはなぜですか?
ssh -tバックグラウンドジョブが完了するのを待たないのはなぜですか? 例: ssh user@example 'sleep 2 &' sshは2秒後に戻るため、これは期待どおりに機能しますが、 ssh user@example -t 'sleep 2 &' sleep終了するのを待たずにすぐに戻ります。 誰もがこの理由を説明できますか?ssh -t戻る前にすべてのバックグラウンドプロセスが完了するのを待つ方法はありますか? 私のユースケースは、でスクリプトを開始することです。ssh -tこのスクリプトは、メインスクリプトの終了後も存続する必要があるいくつかのバックグラウンドジョブを開始します。でssh -t、これは、これまでは不可能です。

1
プロセス/ usr / libexec / packagekitdは何をしますか?
このプロセスは私の帯域幅を占有し続けます: このプロセスは何をしますか? 殺しても安全ですか? パッケージ全体を削除しても安全です(二度と起動しないようにするため) または、バックグラウンドで再び自動的に実行されないようにする必要がありますか? Fedora 23を実行しています。

1
一部のプログラムはすぐにシェルに戻るのに、他のプログラムは実行が完了するまで戻らないのはなぜですか?
現代のオペレーティングシステムの本から、コマンドが実行されると、シェルは子プロセスを作成し、子が実行を終了するまで待機し、ユーザーからの別のコマンドを待機することを読みました。これは実際に多くのプログラムの場合ですgedit。端末は私が閉じるまでコマンドを受け取りませんgedit。しかし、Atomコードエディターを開くと、シェルはすぐに戻り、エディターが実行されていても次のコマンドを受け入れる準備ができています。ターミナルを閉じてもアトムは閉じません。これは、エディターが子プロセスとしてではなく開かれたことを意味しますか?これを可能にする基本的なメカニズムは何ですか? ランニングps au | grep atomは与える <username> 8042 0.0 0.0 15944 2264 pts/1 S+ 00:55 0:00 grep --color=auto atom

3
バックグラウンドコマンドを待つシェルスクリプト
私はスクリプトを書いていますが、それを行う方法を見つけることができない何かが必要です... バックグラウンドでコマンド「command1&」を作成し、スクリプトのどこかでコマンドが終了するのを待ってからcommand2を実行する必要があります。基本的に、私はこれが必要です: 注:各コマンドは特定のディレクトリで実行されます!whileループの最後に、command1が4つのディレクトリを作成しました。それぞれが特定のプロセスを実行するため、実行中のプロセスの合計は4です。 a=1 while [$a -lt 4 ] . command1 #Generates 1 Process a= `export $a +1` done #Wait until the 4 process end and then run the command2 . command2 私はwaitpidプロセス番号を持つコマンドについて何かを見ましたが、それもうまくいきませんでした。

3
バックグラウンドプロセスの信頼できるリターンコード
次のbashコードを想定してみましょう。 foo > logfile 2>&1 & foo_pid=$! while ps -p$foo_pid do ping -c 1 localhost done wait $foo_pid if [[ $? == 0 ]] then echo "foo success" fi $?の戻りコードではfooなく、の戻りコードが実際に含まれていると想定しても安全pingですか?その質問に対する答えが「あなたはそれを仮定することはできません」である場合。次に、このコードを変更して、$?常に戻りコードが含まれていることを確認するにはどうすればよいfooですか?

1
「nohup ./my_script&」を実行しているターミナルを終了しています=>「実行中のジョブがあります」。終了してもよろしいですか?
端末を切断したときにジョブが強制終了しないように、リモートボックスで次のコマンドを実行するとします。 nohup ./my_script.sh & 端末を終了しようとすると、次の警告が表示されました。 zsh: you have running jobs 大丈夫だと思います。それはちょうど私がバックグラウンドで実行されているジョブ/プロセスを持っていることを私に伝えています。端末を切断しても、ジョブ/プロセスは引き続き実行されますか?

4
バックグラウンドで複数のnohupコマンドを実行する
2つのコマンドcmd1とcmd2を取得しました。2つのうち、cmd2の完了には時間がかかります。cmd2を実行してからcmd1を実行する必要があります。 次の方法でそれらを実行しようとしました: bash$ (nohup ./cmd2>result2 &) && nohup ./cmd1>result1 & または bash$ (nohup ./cmd2>result2 &) ; nohup ./cmd1>result1 & しかし、どちらの場合も、cmd1はcmd2が完了するのを待っておらず、result1がいっぱいになっていることがわかります。 両方をnohupプロセスにし、バックグラウンドで実行する必要があるときに、cmd1をcmd2の後に実行する方法は?

2
コマンドを並行して実行し、コマンドの1つのグループが完了するのを待ってから、次のグループを開始します。
複数のコマンドを含むスクリプトがあります。コマンドをグループ化して一緒に実行するにはどうすればよいですか(コマンドのグループをいくつか作成します。各グループ内で、コマンドは(同時に)実行する必要があります。グループは順次実行され、1つのグループが完了するまで待ってから、次のグループ)... ie #!/bin/bash command #1 command #2 command #3 command #4 command #5 command #6 command #7 command #8 command #9 command #10 どうすれば3つのコマンドごとに実行できますか?私は試した: #!/bin/bash { command #1 command #2 command #3 } & { command #4 command #5 command #6 } & { command #7 command #8 command #9 …

2
終了したバックグラウンドジョブステータスの「Exit 2」とは何ですか?
私はファイルにいくつかのデータ(いくつかのディレクトリからの* conf)を入れる演習を行っており、これをバックグラウンドで行う必要があります。私はそれをしました、そして私は出力メッセージの意味が何であるか疑問に思っています: [A@localhost tests]$ ls -ld /etc/*conf /usr/*conf > test1_6_conf.txt 2>&1 & Enterはこの行を上昇させます: [1] 2533 どういう意味ですか?他のEnterの後に、別のメッセージが表示されます [A@localhost tests]$ [1]+ Exit 2 ls --color=auto -ld /etc/*conf /usr/*conf > test1_6_conf.txt 2>&1 どういう意味ですか?「2番出口」とは? チェック結果を入力してください-問題はないようです。 [A@localhost tests]$ [A@localhost tests]$ ls -l test1_6_conf.txt -rw-rw-r--. 1 A A 2641 Nov 22 14:19 test1_6_conf.txt [A@localhost tests]$ CentOS …

3
シェルスクリプトでは、(1)バックグラウンドでコマンドを開始する方法(2)x秒待機する方法(3)そのコマンドの実行中に2番目のコマンドを実行する方法を教えてください。
これは私が起こる必要があるものです: バックグラウンドでプロセスAを開始 x秒待つ フォアグラウンドでプロセスBを開始 どうすれば待機を実現できますか? 「スリープ」はすべてを停止するように見えますが、実際にはプロセスAが完全に終了するのを「待機」したくありません。時間ベースのループをいくつか見てきましたが、もっときれいなものがあるかどうか疑問に思っています。

1
「su -c <command>&」がハングアップせずにコマンドをバックグラウンドで実行できるように見えるのはなぜですか
私は、バックグラウンドプロセスで断続的に死ぬ問題を抱えていた同僚を助けていました。 サーバーにログインして実行することでバックグラウンドプロセスを開始していることがわかりました。 su - &lt;user&gt; -c '&lt;command&gt;' &amp; 「あは」と叫びました。「コマンドを「&」で開始すると、制御端末を終了するときにハングアップします。これを行うには、nohupなどを使用する必要があります。このプロセスは、デーモンとしての実行をサポートする必要があります。」 上記のコマンドをテストして私のポイントを実証しましたが...動作しているようです:上記のコマンドを実行したターミナルを終了したときに、コマンドによって開始されたプロセスが終了しませんでした。 コマンドは、出力がファイルに送られるカスタムPythonスクリプトです。私の知る限り、スクリプトにはインテリジェントな「デーモン化」のような機能はありません。Wikipedia:Daemon(computing):Creationページにリストされているデーモンとして実行するために必要なことは何もしません。 このようにコマンドを実行すると、期待どおりに動作します。 &lt;command&gt; &amp; exit 上記の場合、ターミナルを終了すると、コマンドによって開始されたバックグラウンドプロセスが終了します。 私の質問はこれです: 端末が終了したときにプロセスが終了しないようにする「su--c&」を追加するとどうなりますか。制御端子、標準入出力などについて詳しく知りたい これは、このコマンドをバックグラウンドプロセスとして実行するという目標を達成するための合理的な方法ですか?そうでない場合、そうではありませんか? 私は社内でベストプラクティスを広めたいと思っていますが、私が行った推奨事項を実証およびバックアップできる必要があります。 何が起こっているのかも正確に理解したい。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.