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

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

11
ターミナルクローズに耐えるコマンドを実行するにはどうすればよいですか?
プロセスを開始して、それを忘れたい場合があります。次のようにコマンドラインから起動した場合: redshift ターミナルを閉じることができないか、プロセスが強制終了されます。プロセスを強制終了せずに端末を閉じることができるような方法でコマンドを実行できますか?

4
シェルスクリプトで最後に実行されたコマンドのPIDを取得する方法は?
次のようなシェルスクリプトが必要です。 my-app & echo $my-app-pid しかし、実行されたばかりのコマンドのPIDを取得する方法がわかりません。 jobs -p my-appコマンドを使用してpidをgrep できることを知っています。しかし、シェルを複数回実行したい場合、この方法は機能しません。そのためジョブ仕様があいまいです。

8
バックグラウンドプロセスを終了する方法
を使用してバックグラウンドでリモートマシンでwgetを開始しました&。突然ダウンロードが停止します。プロセスを終了してから、コマンドを再実行します。どうすれば終了できますか? シェルウィンドウを閉じていません。ただし、ご存じのとおり、Ctrl+ CとCtrl+の使用は停止しませんZ。

5
バックグラウンドプロセスを一時停止してフォアグラウンドにする方法
元々フォアグラウンドで実行されているプロセスがあります。Ctrl+ Zで中断し、バックグラウンドで実行を再開しbg <jobid>ます。 バックグラウンドで実行中のプロセスをどのように一時停止するのでしょうか? バックグラウンドプロセスをフォアグラウンドにするにはどうすればよいですか? 編集: プロセスはstderrに出力するのでfg <jobid>、プロセスが端末に出力している間にどのようにコマンドを発行する必要がありますか?

8
待たせずにコマンドを実行する
CLIでは、入力するコマンドが完了するまでに時間がかかる場合があります。また、それがいつ発生するかを知っている場合もあります。Linuxの「バックグラウンド化」などについて少し混乱しています。 待ちたくないとCLIに伝える最も一般的な(またはユーザーフレンドリーな方法)プロンプトをすぐに返してください。そして、それがプログレスバーまたはただ忙しいスピナーを私に与えることができたら、それは素晴らしいでしょう!

3
プロセスから^ Zを実行すると、「停止」します。どのように元に戻しますか?
誤ってtelnetプロセスを「停止」しました。今では、「スイッチバック」することも、それを殺すこともできません(kill 9292992929がprocessidである場合、応答しません)。 だから、私の質問は、あなたがLinuxコマンドラインで停止したプロセスを持っている場合、どのようにして元に戻すことなく、どのようにそれに切り替えるか、それを殺すのkill -9ですか?

9
エレガントな方法で永遠に何もしない方法は?
に役立つ情報を生成するプログラムstdoutがありますが、からも読み取りますstdin。標準入力に何も提供せずに、標準出力をファイルにリダイレクトしたい。これまでのところ、とても良い:できること: program > output ttyでは何もしません。 ただし、問題はこれをバックグラウンドで実行することです。私が行った場合: program > output & プログラムは中断されます(「中断(tty入力)」)。 私が行った場合: program < /dev/null > output & EOFに達するため、プログラムはすぐに終了します。 私が必要なのはprogram、無期限に何もせず、読まない何かにパイプすることstdinです。次のアプローチが機能します。 while true; do sleep 100; done | program > output & mkfifo fifo && cat fifo | program > output & tail -f /dev/null | program > output & しかし、これは非常にいものです。そこ持ち(言い換えために「無期限に、何もしない」ために、標準のUnixユーティリティを使用して、エレガントな方法であることをman …

5
複数のコマンドを実行し、bashでそれらを殺します
単一のシェルで複数のコマンド(プロセス)を実行したい。それらはすべて独自の連続出力を備えており、停止しません。バックグラウンドでそれらを実行すると壊れますCtrl- C。それらをすべてCtrl-で停止できるように、単一のプロセス(サブシェル、多分?)として実行したいと思いCます。 具体的には、単体テストmocha(監視モード)を実行し、サーバーを実行してファイルの前処理(監視モード)を実行し、1つのターミナルウィンドウでそれぞれの出力を確認します。基本的に、タスクランナーの使用を避けたいと思います。 バックグラウンドでプロセスを実行することで実現できますが(&)、その後、それらを停止するにはフォアグラウンドに配置する必要があります。それらをラップするプロセスが欲しいのですが、プロセスを停止すると、その「子」が停止します。

6
-fオプションで開始されたSSHセッションを強制終了する方法(バックグラウンドで実行)
私はこれでかなり迷っています。manページから: -f Requests ssh to go to background just before command execution. -fオプションを使用してSSHを開始した後、トンネルが機能します。しかし、私はそれを使い終わった後、それとさらに相互作用する方法を知りません。たとえば、SSHトンネルを終了したときに閉じることができません。 私が知っている通常の方法は機能しません。たとえば、jobs何も返しません。~コマンドが認識されない(と私はとにかく、それを使用する方法を正確に知りません)。 ただし、pgrepSSHトンネルがまだ実行されている(端末を閉じた後など)と表示されます。どうすればやり取りできますか?どうすれば閉じられますか?

7
ssh接続から完全に切り離して、リモートコマンドを実行する
私は2台のコンピュータを持っている、localpcとremoteserver。 でlocalpcいくつかのコマンドを実行する必要がありますremoteserver。必要なことの1つは、数時間実行するバックアップスクリプトを開始することです。私はコマンドlocalpcを「発火」させてから、完全に独立して実行したいremoteserverと思いlocalpcます。 これは私がこれまでにやったことです: remoteserver 次を含むスクリプト: /root/backup.sh localpc これを実行するようにスケジュールされています: ssh root@remoteserver 'nohup /root/backup.sh' & 私はこれを正しい方法でやっていますか?これを行うためのより良い方法はありますか?この方法で問題が発生しますか?


3
リバーストンネルを作成するための永続的なバックグラウンドssh接続:正しい方法は何ですか?
関連質問:サーバーからクライアントへのSSH接続を開始する そこからの回答は私を大いに助けました、このコマンドは私が必要なことをします: ssh -R 2225:localhost:22 loginOfServerWithPublicIP@publicIP そこで、常に再接続するスクリプトを作成しました。 #!/bin/bash while true; do echo "try to connect..." ssh -o ServerAliveInterval=240 -R 2225:localhost:22 user@host echo "restarting in 5 seconds.." sleep 5 done に追加しました/etc/crontab。しかし、シェルから「手動」で実行するだけで機能することがわかりましたが、cronから呼び出された場合、sshは接続してすぐに終了します。(したがって、上記のスクリプトは常に再接続します) からman ssh、バックグラウンド接続では-nキーで呼び出す必要があることがわかりましたが、助けにはなりませんでした。次に、同様のスクリプトを探してみたところ、を呼び出すと機能することがわかりましたtail -f something。つまり、「ネバーエンディング」コマンドなので、空のファイル/tmp/dummy_fileを作成したところ、sshコマンドは次のようになります。 ssh -o ServerAliveInterval=240 -R 2225:localhost:22 -n user@host tail -f /tmp/dummy_file 今すぐ動作します!しかし、この解決策は少しいように思えますが、実際にその動作の実際の理由はわかりません。偶然に、私bashはtail -f(代わりにbash「永遠に」コマンドでもないように思える)の代わりに電話をかけようとしましたが、うまくいきません。 だから、誰もこの動作を説明してもらえますか?バックグラウンドssh接続を作成してリバースsshトンネルを維持する正しい方法は何ですか?

1
GNUパラレルvs&(バックグラウンドを意味する)vs xargs -P
.shスクリプトで一連のタスクを実行することの違いまたは利点(ある場合)を使用して混乱しているGNU parallel 例えば、Ole Tangeの答え: parallel ./pngout -s0 {} R{} ::: *.png それらをループしてバックグラウンドに置くと言うよりも&。 例えばfrostschutzの答え: #copied from the link for illustration for stuff in things do ( something with stuff ) & done wait # for all the something with stuff 要するに、それらは単に構文的または実際的に異なっていますか?そして、実際に異なる場合、それぞれをいつ使用する必要がありますか?

5
私は `&`を使用しています:プロセスがバックグラウンドで実行されないのはなぜですか?
&バックグラウンドでプロセスを実行するコマンドに追加できることを知っています。 Ubuntu 12.04ボックスにSSHで接続してpythonプログラムを実行しています$python program.py &が、ターミナルウィンドウを閉じようとすると、ターミナルを閉じると実行中のプロセスが強制終了されるというメッセージが表示されます。 どうしてこれなの?アンパサンドを使用して、バックグラウンドでプロセスを実行しています。SSHを使用しているかどうかに関係なく、どうすれば実行できますか?

4
4つのタスクを並行して…どうすればいいですか?
ディレクトリに多数のPNGイメージがあります。これらの画像を圧縮するために実行するpngoutというアプリケーションがあります。このアプリケーションは、私がやったスクリプトによって呼び出されます。問題は、このスクリプトが次のように一度に1つずつ実行することです。 FILES=(./*.png) for f in "${FILES[@]}" do echo "Processing $f file..." # take action on each file. $f store current file name ./pngout -s0 $f R${f/\.\//} done 一度に1つのファイルのみを処理するには、多くの時間がかかります。このアプリを実行した後、CPUがわずか10%であることがわかります。そのため、これらのファイルを4つのバッチに分割し、各バッチをディレクトリに入れて、4つのターミナルウィンドウ、4つのプロセスから4を起動できることを発見しました。ジョブは時間の1/4かかります。 2番目の問題は、イメージとバッチを分割し、スクリプトを4つのディレクトリにコピーして、4つのターミナルウィンドウを開き、bla bla ... 何も分割せずに、1つのスクリプトでそれをどのように行いますか? 私は2つのことを意味します:最初にbashスクリプトからどのようにバックグラウンドにプロセスを起動しますか?(最後に追加するだけですか?)2番目:4番目のタスクを送信した後、バックグラウンドへのタスクの送信を停止し、タスクが終了するまでスクリプトを待機させるにはどうすればよいですか?つまり、1つのタスクが終了すると新しいタスクをバックグラウンドに送信するだけで、常に4つのタスクを並行して保持しますか?そうしないと、ループは何十億ものタスクをバックグラウンドで起動し、CPUが詰まります。

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