はじめに
深層学習モデルの学習や,データの前処理などでコマンドを実行して,長時間放置するような機会が増えたためターミナルやセッションの管理,バックグランドでの実行をしたいと思うようになりました.
nohup
,screen
,tmux
など様々なコマンドがあるなかで,とりあえず1つマスターしようと思いscreen
コマンドから入りました.
参考:
本記事では原理や用語解説などは行わず,自信がよく使うもののみを紹介します.随時更新していきます.
screen コマンドの使い方
sudo apt install screen
新しいセッションを作る
screen
名前付きで新しいセッションを作る
screen -S name
セッションの一覧を確認する
screen -ls
デタッチする
<ctrl> + <a>
d
再アタッチする
screen -r
PIDを指定して再アタッチする
screen -r [PID]
アタッチした状態でセッション名をつけ直す
<ctrl> + <a>
:sessionname [name]
コピーモードに入る・スクロールを可能にする
<ctrl> + <a>
[
抜ける時はesc
セッションを終了する
<ctrl> + <a>
k
<ctrl> + <a>
:quit
実行したコマンドをscreenに付け替える
-
reptyr
コマンドのインストール
sudo apt install reptyr
- screenをアタッチする
-
reptyr
コマンドで付け替える
ps aux | grep 実行ファイル
やnvtop
,htop
などで付け替えたいコマンドのPIDを調べる
子プロセスがある場合はTオプションをつける
sudo reptyr -T PID