タスク制御はおそらく私がLinuxで一番好きな部分です。私はコンピュータを一度に数日間使用できないようにする計算的に厳しいプロセスを開始することがよくありますCTRL-Z
。fg
しかし、時にはタスクスタックにタスクを挿入したい場合があります。私は何をすべきか分からなかった。
私はそれを使用していますbash
。
次のように見えます。
$ ./reallybigjob
^Z
[1]+ Stopped reallybigjob
$ (stuff I don't know) && ./otherbigjob
$ fg
答え1
ジョブスタックはなく、各ジョブは独立して処理されます。
あなたはできますfg; otherbigjob
。これにより、コマンドの実行が停止するreallybigjob
と、再び前景に戻ります。これは、最初のジョブ以降の実行をキューに入れるのとは異なります。 +を押すとすぐに始まります。 +を押すと死ぬ。バックグラウンドにとどまり、その後他のジョブをキューに入れることはできません。fg
otherbigjob
otherbigjob
CtrlZotherbigjob
CtrlCreallybigjob
otherbigjob
ジョブがCPUを多用する場合、このbatch
ユーティリティを使用すると、CPUが使用されていないときに次のジョブをスケジュールできます。
答え2
バックグラウンドで複数のタスクを実行または一時停止できます。
$ ./reallybigjob &
[1] 873
$ ./otherbigjob &
[2] 875
$ jobs
[1]- Running ./reallybigjob &
[2]+ Running ./otherbigjob &
$ fg 1
./reallybigjob
^Z
[1]+ Stopped ./reallybigjob
$ fg 2
./otherbigjob
^Z
[2]+ Stopped ./otherbigjob
$ jobs
[1]- Stopped ./reallybigjob
[2]+ Stopped ./otherbigjob
$bg 1
[1]- ./reallybigjob &
$ jobs
[1]- Running ./reallybigjob &
[2]+ Stopped ./otherbigjob
$