ふと、nohupでバックグラウンドジョブ実行させたジョブについて、終了時にメールやSlackで通知させることができないかと思ったので、ちょっとやってみた。 で、以下のようにすることで、nohupで実行するコマンドを変数に入れて実行・通知させることができるようだ。

(cmd="echo foo{bar,baz}";nohup $cmd && (echo $cmd | mail mail@domain.sample -s "Job finish") > ./cmd &)

コマンド実行時に上記のように実行することで、バックグラウンドジョブ終了時にメールが送信されてくるようになる。 なお、事前にSlackcatの設定やSlackへのポスト用のスクリプトを作っておけば、ジョブ終了時に同様のやり方でSlackへポストさせることが出来るようになる。