タグ付けされた質問 「job-control」

シェルによってジョブを制御できるさまざまな方法に関する質問:実行の一時停止、再開、終了など


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

9
実行中のプロセスを否認し、それを新しいスクリーンシェルに関連付けるにはどうすればよいですか?
SSHシェルで実行中のプログラムがあります。私はそれを一時停止し、戻ってきたときに実行を一時停止解除できるようにします。 私がそうすることを考えた1つの方法は、所有権をスクリーンシェルに移し、そこでスクリーンシェルを実行し続けることでした。 続行する別の方法はありますか?

2
プロセスを中断および再開する方法
bashターミナルでは、実行中のプロセスを一時停止するためにControl+ Zを押すことができます。その後fg、プロセスを再開するために入力できます。 PIDしかない場合、プロセスを一時停止することはできますか?もしそうなら、どのコマンドを使用する必要がありますか? 私は次のようなものを探しています: suspend-process $PID_OF_PROCESS そして、それを再開するには resume-process $PID_OF_PROCESS


7
子を殺さずに(最初に `screen`を実行せずに)どうやって端末を閉じることができますか?
時々gnome-terminalでアプリを実行しますが、突然gnomeまたは何かを再起動する必要があります。質問への答えも役立つと思うので、何かが起こっているSSHから切断したいと思います。 Gnomeのターミナルツリーは次のようになります。 gnome-terminal bash some-boring-process 缶I「デタッチ」bashからgnome-terminal(またはデタッチsome-boring-processのbashから、その出力どこかにリダイレクト)?私が単に殺すとgnome-terminal、bashそのすべてのサブプロセスに殺されます

4
Bashで遅延サスペンド(Ctrl-Y)の目的は何ですか?
Bashのマニュアルページの該当部分のみに次のように記載されています。 bashが実行されているオペレーティングシステムがジョブ制御をサポートしている場合、bashにはそれを使用する機能が含まれています。プロセスの実行中に中断文字(通常^ Z、Control-Z)を入力すると、そのプロセスが停止し、制御がbashに戻ります。 遅延サスペンド文字(通常^ Y、Control-Y)を入力すると、端末から入力を読み取ろうとするとプロセスが停止し、制御がbashに戻ります。 その後、ユーザーはbg コマンドを使用してバックグラウンドでジョブを続行し、このジョブの状態を操作できます。fgフォアグラウンドでそれを続行するコマンド、またはそれを強制終了するkillコマンド。^ Zはすぐに有効になり、保留中の出力と先行入力が破棄されるという追加の副作用があります。 私は一度も使用したことがありませんCtrl- Y; 私はそれについて学んだだけです。私は罰金を行っているCtrl- Z(一時停止)のみ。 私は、このオプションが何であるかを想像しようとしていますのために。いつ役に立つでしょうか? (この機能はすべてのUnixバリアントに存在するわけではありません。SolarisおよびFreeBSDには存在しますが、Linuxには存在しません。対応する設定はstty dsuspです。) おそらく少ない主観:で実現することができるものありますCtrl- Yと同じように簡単に行うことができませんかCtrl- Z?

3
sshセッションから実行されるプログラムは接続に依存しますか?
sshセッションから実行されるプログラムは、クライアントへの接続に依存しますか?たとえば、接続が本当に遅い場合。それで、画面に物が印刷されるまで積極的に待機しますか? また、接続に依存する場合、たとえば画面やby風でも発生しますか?これらのプログラムはホストから切断した後も実行され続けるためです。 注:これらの関連する質問のみが見つかりました。 sshセッションの一時的な切断は、実行中のプログラムに影響しますか? 接続が失われた場合、sshを介したスクリーンセッションはどうなりますか?
29 ssh  tty  job-control 

1
フォアグラウンドジョブでのctrl cとctrl z
Ctrl+ Z一方、仕事を停止Ctrl+がC仕事を殺します。 何故ですか?他の方法はもっと意味がありませんか? z@z-lap:~$ sleep 100& [1] 4458 z@z-lap:~$ sleep 200& [2] 4459 z@z-lap:~$ jobs [1]- Running sleep 100 & [2]+ Running sleep 200 & z@z-lap:~$ fg %1 sleep 100 ^Z [1]+ Stopped sleep 100 z@z-lap:~$ jobs [1]+ Stopped sleep 100 [2]- Running sleep 200 & z@z-lap:~$ fg %1 sleep …

4
否認されて端末を失ったプロセスの出力はどうなりますか?
何らかのプロセスが開始された仮想端末を閉じた場合、出力はに直接移動し/dev/nullますか、それとも何らかの方法でメモリを汚染しますか? とにかく出力を取得して、その後の任意の時点で読み続けることができますか? [編集]:それで、プロセスを事実上無視する瞬間は、その出力を制御する私の力の終わりですか? また、停止したプロセスを否認した場合、最初はすべてが正常であるように見えることに気付きました。ジョブは終了も表示もされません。しかし、ログアウトすると(そして、ターミナルを閉じることを意味せずsu、たとえばから単に終了する)、プロセスは終了します。それでも、バックグラウンドで実行されている否認されたプロセスは実行を継続できます。

5
Ctrl + Cを押したときにシェルスクリプトでバックグラウンドプロセスが終了して終了するのをどのように待ちますか
バックグラウンドプロセスを実行するようにシェルスクリプトを設定しようとしています。シェルスクリプトを実行Ctrlcすると、子プロセスが強制終了されて終了します。 私が思いついた最高のものはこれです。またkill 0 -INT、待機が発生する前にスクリプトを強制終了するため、子が完了する前にシェルスクリプトが終了します。 このシェルスクリプトを送信後に子供が死ぬのを待つ方法についてのアイデアはありますINTか? #!/bin/bash trap 'killall' INT killall() { echo "**** Shutting down... ****" kill 0 -INT wait # Why doesn't this wait?? echo DONE } process1 & process2 & process3 & cat # wait forever



2
誰かが「set -m」の機能を詳細に説明できますか?
上のmanページ、それだけで言います: -mジョブ制御が有効になっています。 しかし、これは実際にはどういう意味ですか? 私はSOの質問でこのコマンドに出くわしました。私はOPと同じ問題を抱えています。これは「ファブリックはTomcatを起動できません」です。そしてset -mこれを解決しました。OPは少し説明しましたが、私にはよくわかりません。 問題はコマンドが終了すると殺されるため、バックグラウンドタスクにありました。 解決策は簡単です。「set -m;」を追加するだけです。コマンドの前のプレフィックス。

1
スクリプトからバックグラウンドプロセスを開始し、スクリプトの終了時に管理します
スクリプトからデーモンに似たプロセスを実行および構成したいと思います。 私のシェルはCygwinでエミュレートされたzshであり、デーモンは基本的なFTPサーバーであるSFKです。 ここで重要なのは、スクリプトstartserv.shを次のように作成できることです。 #!/bin/sh read -s -p "Enter Password: " pw user=testuser share=/fshare cmd="sfk ftpserv -user=$user -pw=$pw -usedir $share=$share" $cmd & スクリプトを実行した後startserv.sh、プロンプトを表示せずに停止(終了?)します: CTRL+ Cスクリプトとバックグラウンドジョブプロセスの両方を終了します。 叩くEnterスクリプトは、プロセスがバックグラウンドに残って終わります。 とにかく私はのみを経由して、それを見ることができpsないjobs私は、プロセスを閉じたいとき、そう、私は残忍送信する必要がありkill -9、私は賛成で避けたいのですが何かある信号、 CTRL+をC。 別の方法 は、スクリプト全体をバックグラウンドで実行することです。「Would be」ですがread、スクリプトがとして実行される場合、コマンドはユーザー入力を取得できませんstartserv.sh &。 真のデーモンではなく、一時サーバーが必要なことに注意してください。つまり、スクリプトが終了した後、サーバープロセスをバックグラウンドで実行して、(仮想マシンゲストで)簡単なインタラクティブシェルタスクを実行する必要がありますが、シェルを生き残るためのプロセスが必要です。したがって、nohup適切ではないようです。

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