- 書式
- suspend [--force]
概要
suspend
コマンドは
SIGTSTP
シグナルを
現在のシェルに送信することで
一時停止します。
そして、
制御しているプロセスに戻ります。
一時停止されたシェルは
後で SIGCONT
シグナルを
送信することで再開できます。
制御中のプロセスを
持ってないシェルを
一時停止するのを防ぐために、
suspend
コマンドは
ログインシェルを
一時停止しません。
この要求は、
--force
オプションをつけるか、
対話的シェルではない場合に
素通りします。
訳注: fg コマンドで
フォアグラウンドにできます。
実行例追加
%self
は現在のfishのPIDなので、
子プロセスでfishを立ち上げて
suspend
の挙動を見てみます。
$ echo %self 7506 $ status This is a login shell Job control: Only on interactive jobs # 子プロセス(PID 7606)を立ち上げる $ fish Welcome to fish, the friendly interactive shell Type help for instructions on how to use fish $ echo %self 7606 $ suspend Suspending 7606: fg to resume 'fish' has stopped # 元のfishに戻る $ echo %self 7506 # 今度はログインシェルとして子プロセス(PID 7706)を立ち上げる。 $ fish -l Welcome to fish, the friendly interactive shell Type help for instructions on how to use fish $ echo %self 7706 # ログインシェルなのでsuspendに--forceオプションが必要 $ suspend Refusing to suspend login shell. Use --force to override. This might hang your terminal. $ suspend --force Suspending 7706: fg to resume (or kill -CONT 7706 from another terminal) Job 2, 'fish -l' has stopped # 元のfishに戻る $ echo %self 7506 # fgで7706のfishに戻る $ fg Send job 2, 'fish -l' to foreground $ echo %self 7706 $ exit # fgで7606にfishに戻る $ fg Send job 1, 'fish' to foreground $ echo %self 7606 $ exit $ jobs jobs: There are no jobs
最後までお読みいただき、ありがとうございました。参考になれば嬉しいです。