cronjob 不会停止 postgres

cronjob 不会停止 postgres

我正在运行 Ubuntu 18.04,我正在使用 apt 附带的 Postgres。

我编写了一个简单的 bash 脚本来停止数据库。

#!/bin/bash -x

/etc/init.d/postgresql stop

当在 root 拥有的 cronjob 中运行此脚本时,它不会停止数据库。

当我在命令行上手动执行脚本时,它按预期工作。selinux 未启用。

然后我将 STDOUT 传送到文件

59 11 * * * /etc/init.d/x.sh >> /var/log/pgsql_tmp.log 2>&1

唯一的输出就是这个。

+ /etc/init.d/postgresql stop

答案1

我把脚本改成了使用

service postgresql stop

我能够获得更多 STDOUT

+ /usr/sbin/service postgresql stop
/usr/sbin/service: 169: /usr/sbin/service: systemctl: not found
/usr/sbin/service: 182: /usr/sbin/service: sed: not found
/usr/sbin/service: 187: exec: systemctl: not found

例如,为了修复,

/usr/sbin/service: 169: /usr/sbin/service: systemctl: not found

我使用 vim 打开了 /usr/sbin/service 的第 169 行

169    if ! systemctl --quiet is-active multi-user.target

并插入整个路径

169    if ! /bin/systemctl --quiet is-active multi-user.target

我也为其他人做了同样的事情,现在 cron 可以工作了。

相关内容