状況
sshしたラズパイとか結構非力なマシンにsshしてあれこれビルドしようかなーと思って始めたmake
や make install
とかが終わらなくて泣きたいときにするワークアラウンド。
方法
アプローチとしては実行中のコマンドのバックグラウンド化と非所有化(?)。
下準備(というか前提)
実行したいコマンド群はあらかじめシェルスクリプトに書いておき、実行するようにしましょう。
;
で区切って1行にまとめたコマンドはそれぞれが別のジョブになってしまうためです。
tmuxやscreen使え (2021/12/3追記)
ご指摘ありがとうございます。そうですね。tmuxなどを使うととても良いのですが、お恥ずかしながら使った事がありませんでした。勉強になります。
これらツールの使い方は本題では無いため各自ググって使って下さい。
手順
1. クソ長いジョブの走っているターミナルで Ctrl + Z
をし、ジョブ(コマンド)を停止させる。
[1]+ Stopped make
2. jobs
でジョブを確認、bg
コマンドでバックグラウンドで再開させる。
root@ubuntu:~# jobs
[1]- Stopped make
root@ubuntu:~# bg 1
[1]- make &
3. jobs
で走っていることを確認。
root@ubuntu:~/repos/snort_src/ragel-6.10# jobs
[1]- Running make &
4. disown
で手放す。
root@ubuntu:~# disown -h %1
root@ubuntu:~# jobs
[1]- Running make &
root@ubuntu:~# logout
Connection to xxx.xxx.xxx.xxx closed.
おしまい。走っているジョブのPPID(親PID)は1になります。