raspberry piでできるbackground処理方法を探していたら、screenという便利な機能を見つけました。
備忘録を兼ねて共有します。
screenとは
screenとはターミナルのエミュレータを動作させるプログラムです。screenを使うことによって、ターミナルを別画面で開いたような処理ができます。
別画面で開いたことになっているので、sshでログアウトした後も処理を継続することができます。
また、ログインしなおしたときに、処理を実行したターミナルを再確認することもできます。
「&」を付けて実行した処理は実行状況を確認しづらいですが、screenを使えば可能です。
また、「&」で実行した処理はdisownなどで所有権を破棄しないとsshログアウトと同時に終了してしまいますが、screenでの処理はsshログアウト後も継続します。
そんな便利なscreenの基本操作をこの記事では説明します。
インストール
デフォルトでは入っていないと思うので、screenをインストールします。sudo apt-get install screen
重たい処理をbackgroundで実行する方法
screenを起動し、別ソケットでの処理を開始します。screenの説明が出るので、スペースを押してページを最後までめくるか、エンターを押して閉じます。
screen
backgrounで処理したい時間がかかるコマンドを入力します。
sudo apt-get -y update && sudo apt-get -y upgrade
下記のキー操作で、screenで起動したソケットから抜けます。
Ctrl-a d
screenのソケットから抜けたことで、先ほどの処理がbackgroundで処理されるようになりました。
この状態でログアウトしても、screen上の処理は継続されます。
screenで実行している処理に戻る方法
screenのソケットを確認します。screen -ls
処理が走っていたら、下記のコマンドで処理に移れます。
ソケットが一つの場合
screen -r
複数のソケットが存在する場合、ソケット名を渡すか、
screen -r 3263.pts-1.raspberrypiソケットを識別できる先頭の文字を渡します。。
screen -r 3263
screenの処理を終わる方法
screenのソケットに居る(Attachedと表示される)ことを確認します。screen -ls
下記のどちらかでソケットを閉じれます。
Ctrl-a kまたは
exit
詳しい説明
更なる説明は、下記のコマンドでマニュアルを開くと確認できます。man screen
以上です。
何かの参考になれば嬉しいです。
0 件のコメント :
コメントを投稿