脚本在 slackware 15.0 上挂起

脚本在 slackware 15.0 上挂起

我编写了以下简单的脚本来自动运行助手并通过电子邮件发送结果。

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 上无法按预期工作。也就是说,它运行并发送电子邮件;但是,它然后挂起。我必须按 Ctrl-C 才能恢复 CLI 提示符。

它工作的程序组合是: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当我直接在前台或后台运行脚本时,它会“挂起”,我必须按 Ctrl-C 才能恢复 CLI 提示符。

当我使用莫顿的使用“bash -x”的建议时,它在前台“按预期”运行。输出:

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 时得到的。

在所有情况下,它都会发送电子邮件。后台运行和前台运行有什么区别?

相关内容