アシスタントを自動的に実行し、結果を電子メールで送信するために、次の簡単なスクリプトを作成しました。
nice -n 12 aide -C
mailx -s "AIDE Report: ${HOST}" ${ADMIN}@${SMTP} < /var/log/aide.log
exit
rhel7、rhel8、およびslackware 14.2では期待どおりに動作します。しかし、Slackware 15.0では期待どおりに動作しません。つまり、実行されて電子メールが送信されますが停止します。 CLIプロンプトを復元するには、Ctrl-Cを押す必要があります。
動作するプログラムの組み合わせは、bash-4.2.46、mailx-12.5.7、aide-0.15.1 bash-4.4.20、mailx-12.5.7、aide-0.16 bash-4.3.48、mailx-12.5です。 7. アシスタント-0.17.3
中断されたプログラムのバージョンはbash-5.1.16、mailx-14.9.23、aide-0.17.3です。
この問題を解決する方法がわかりません。
修正する: これがますます混乱しています。
/root/bin/AideCheck.sh
フォアグラウンドまたはバックグラウンドでスクリプトを直接実行すると、スクリプトが「停止」し、CLIプロンプトを再起動するにはCtrl-Cを押す必要があります。
「bash -x」の使用に関するMortonの提案を使用すると、フォアグラウンドで「予想どおりに」実行されます。出力:
root@loki:~/bin# bash -x /root/bin/AideCheck.sh
+ ADMIN=sysadmin
++ date +%Y%m%d
+ DATE=20220928
+ DOMAIN=aufait.net
++ hostname -f
+ HOST=loki.aufait.net
+ SMTP=smtp.aufait.net
+ nice -n 12 aide -C
< output of aide snipped >
+ echo loki.aufait.net [email protected]
loki.aufait.net [email protected]
+ mailx -s 'AIDE Report: loki.aufait.net' [email protected]
+ exit
root@loki:~/bin#
しかし、バックグラウンドで実行すると「停止します」。出力:
root@loki:~/bin# bash -x /root/bin/AideCheck.sh &
[1] 16846
root@loki:~/bin# + ADMIN=sysadmin
++ date +%Y%m%d
+ DATE=20220928
+ DOMAIN=aufait.net
++ hostname -f
+ HOST=loki.aufait.net
+ SMTP=smtp.aufait.net
+ nice -n 12 aide -C
< output of aide snipped >
+ echo loki.aufait.net [email protected]
loki.aufait.net [email protected]
+ mailx -s 'AIDE Report: loki.aufait.net' [email protected]
^M^M^C^C
[1]+ Stopped bash -x /root/bin/AideCheck.sh
root@loki:~/bin# jobs
[1]+ Stopped bash -x /root/bin/AideCheck.sh
root@loki:~/bin# fg 1
bash -x /root/bin/AideCheck.sh
+ exit
^Mと^Cは、「enter」キーとCtrl-Cを押すと表示されます。
すべての場合に電子メールが送信されます。バックグラウンドで実行することとフォアグラウンドで実行することの違いは何ですか?