screen を終了する
GNU Screen をどうやって終了するのか。 いつも忘れるので、メモする。
とくに、ttyS0 を使ったシリアル通信をするときに困るのでメモを残す。
方法1 :quit
ctrl-a : (エスケープキー+コロン) でコマンド入力モードに入る
コマンド入力モードで quit
をコマンドで指定する。
Enterで確定して終了する。
終了をやめるときはESC連打
方法2 セッション終了 k or 終了 q
ctrl-a k ( エスケープ+k)で終了する。
ctrl-a k を押すと終了するか、ダイアログが始まる 。
Yを押して、終了する。
ctrl-a k
の代わりにバックスラッシュを使った ctrl-a \
も可能です。ctrl -a k
が現在のbash、ctrl-a \
は現在のscreen全体を終了します。
ctrl-a \ ( エスケープ+バックスラッシュ)がQUITです。ctrl-a k ( エスケープ+k)はKILLです
QUITは全終了、KILLはカレントを終了。1つしか使ってないときはKILLもQUITと同じ結果になる。
方法3 セッション内のプロセスをすべて終了する。
これは、一番便利なので皆が使ってると思うのですが。
screen
だけを起動して内部でbash を起動してる場合
ctrl-d を連打してbashを終了すると、最後のbashを終了したときに、screenも終了する。
ちなみに、ttyS0 ではclose (EOF)送っても何も仕方ないので、終了しない。
ttyUSB0 ならUSBをぶっこ抜けば終了する。そういうことです.
方法4 デタッチして kill
たまに、こういう方法も取る時がある。
screen 内部で動いてるシェルが操作を受け付けないときや、適当に放置してあとで出力だけみるときにデタッチすると思います。
デタッチ( ctrl-a d ) をして通常のシェルに戻ります。
screen -ls
でデタッチしたscreen を一覧する
一覧の数字がPIDなのでこのプロセス番号を指定して終了する
screen -ls screen -kill 12345678
実際やってみた結果
まとめ
ttyUSBならUSBぶっこ抜けばOK
USBじゃない ttyS0 なら Ctrl-a + k
とにかく終了したいとき Ctrl-D 連打か、Ctrl-A \ バックスラッシュ
って感じですね。