はじめに
SSH接続している際に、ログアウト後もプロセスを持続させる方法のメモです。
やりたいことは基本的にはこれでできます。
$ nohup コマンド内容 > out.log &
例
$ nohup echo "very very heavy task" > out.log &
これを実行すると、カレンドディレクトリに out.log
ファイルが作成され、出力内容が保存されます。
out.log
very very heavy task
関数化
ここからがメインです。先程のコマンドはちょっと長いので、関数として登録します。
僕が使用しているシェルは zsh なので ~/.zshrc
に次の内容を追記します。
bash の場合は ~/.bashrc
に追記してください。
.zshrc
background () {
nohup ${@:1} > out.log &
}
内容を保存して、変更内容を適応します。
$ source ~/.zshrc
これで実行したいプロセスの先頭に background
を付けるだけで、バックグラウンド実行することができます。
$ background echo "very very heavy task"
引数がいくつあっても大丈夫です。
$ background python takes_many_args.py foo bar --arg3 1234 --arg4 abcd