きり丸の技術日記

技術検証したり、資格等をここに残していきます。

nohupと&を使用して、性能試験をバックグラウンドで実行する

性能試験でJMeterを使用しているのですが、24時間負荷をかけ続ける長期安定の性能試験を使用するときに失敗したのでメモとして残します。

環境

CentOS

対応

nohupと負荷をかけたいコマンドを記載する。

nohup コマンド &
# nohup jmeter xxxx &

失敗した理由

&だけを使用していたため。

&だけでもnohupと同じようにバックグラウンドでコマンドが実行されます。ただし、&だけの場合はSIGHUPシグナルを受け取ったタイミングで処理を終了してしまいます。

sshの接続終了するとSIGHUPシグナルを送ってしまうため、30-60分の負荷試験なら問題ありませんが、24時間等の長期安定負荷試験の場合は問題が発生します。nohupSIGHUPシグナルを受け取っても、処理を続行します。

sshの接続終了してコマンドが止まることを確認するために、sshを1度終了して、すぐに再度sshを実行したときには問題なかったので気付きませんでした。

細かいシグナルの挙動は参考情報を見てください。

終わりに

「コマンド バックグラウンド」等々で調べると、&しか出てこないので困りました。

基本コマンドのようですので、これが検索上位に来るほどの期待はしていませんが、「性能試験 バックグラウンド」等々のいい感じのワードで検索されることを期待しています。

参考情報