ログを出力しないプロセスをバックグランドで実行する方法
開発メモです。 例えば、 Linux である コマンド を実行する場合に、 実行 ログ や エラー ログ も必要なく、 バックグラウンド で実行する方法です。 ネットでは 標準エラー は残しておくべきだとの意見が多いですが、 エラー が発生しても無視したいので、ここではそれすら残さないようにします。 ログを残さない! 頻繁に同じ プロセス を実行する際、その処理が膨大だった場合、そしてその膨大な処理に何らかの不具合が発生した場合、出力される ログ も膨大になってしまいます。 しかも、 ログ にはほぼ同じ内容が出力されるはずです。 特に検証済みで、結果を確認しなくて良い、もしくは、 エラー が発生しても無視して問題ないのなら、 ログ を出力しない方が良いこともあります。 全ての出力結果を捨てる 早い話、書き方は以下の通りです。 command > /dev/null 2>&1 出力結果を捨てる[ > /dev/null ]と、 エラー出力 の結果を 標準出力 の結果と マージ する[ 2>&1 ]を組み合わせています。 つまり、エラーと実行の ログ を一緒にして 捨てる ということです。 詳しくは、参考サイトをご参照ください。 ## 質問- `command > dev/null 2>&1`ってよく書いてませんか?- crontabでよく書いてませんか?- でもそれ、前のcrontabコピペして書いてませんか?- 実は意味を理解せずに書いてません... いい加減覚えよう。 `command > /dev/null 2>&1`の意味 - Qiita - Qiita バックグラウンドで実行する これは調べればすぐに出てきました。 末尾に「 & 」を付けるだけのようですね。 command & これだけです。 特に説明の必要はありませんね。 著者には利用する場面を想像できませんが、巷では プロセス 実行中に バックグラウンド に切り替る情報が多かったです。 ログを残さずバックグラウンドで実行 いよいよ実行方法です。 上記で記述した2つの内容を単純に掛け合わせればできあがるのですが、書く 順番 が重要な...