显示服务信息后,退出命令无法退出bash shell?

时间:2019-08-11 00:52:23

标签: bash exit systemctl

如此简单的bash脚本,只包含两行。

cat show.sh
systemctl status cron
exit  0 

使用root在终端中执行。

bash  show.sh

有关cron.service的所有信息显示在终端上。

cron.service - Regular background program processing daemon
   Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: ena
   Active: active (running) since Sat 2019-08-10 06:51:18 EDT; 13h ago
     Docs: man:cron(8)

为什么show.sh不在退出状态,单击q将退出show.sh,为什么exit 0不执行?如何触发它?
我的期望:在终端上显示有关cron.service的信息并退出show.sh脚本。
我的show.sh完成了一半,只在终端上显示有关cron.service的信息。
较长的脚本可以自动执行作业,这很有意义,以上两行是显示整个脚本状态的最后一步。

1 个答案:

答案 0 :(得分:1)

--no-pager传递到systemctl,如下:

systemctl --no-pager status cron

否则,systemctl运行less(或类似的程序),直到按下q才退出。因此,控制权不会直接交还给您的脚本。


Unix & Linux的姐妹网站Can I prevent service foo status from paging its output through less?上查看相关问题