書式
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

最後までお読みいただき、ありがとうございました。参考になれば嬉しいです。