外部スクリプトを切り離して実行させたい
負荷が高まった時に何が原因か調べる為に外部スクリプトを呼び出したいのですが、
スクリプトの中で外部スクリプトを呼び出すと、実行が終わるまで待ってしまいます。
たとえばこの様な1.shを実行した場合
1.shの中身
#!/bin/sh
AVERAGE=`uptime|awk '{print $(NF-2)}'|sed 's|\.||;s|,||'`
if [ $AVERAGE -gt 500 ] ; then
2.sh
fi
~略~
負荷が高まり,2.shを実行して、fiの後の処理は2.shが終わるまで待つ事になってしまいます。
2.shの実行を切り離してfiの後の処理もスムーズに行いたいです。
現在、切り離しの為、メール送信させてトリガで2.shを動かしてますが、
mailユーザで2.shを実行すると、動作が非常に遅いのです。
root権限で、かつ画面がある状態で実行すると高速に処理されるようでした。
メール送信時に実行するスクリプトを1.5.shに、sudoを利用して
root権限で実行されるようにしましたが、画面がない為か処理が遅いのです。
1.5.shの中身
sudo su - root -c "2.sh"
tty?のようなことだと考えてますが(アバウトですいません)画面がない所から実行すると
よくないようで、メールトリガのやり方でなく、1.shから2.shを実行する時に切り離すことが
できないだろうかと考えました。
画面が問題なら解決しないかもしれないですが、
どなたかご存知の方がいたら教えてくださいませ。