我编写了一个脚本,询问用户是否要在 10 分钟后关闭计算机或再等一个小时,我在 cron 中安排从 18 点到早上 7 点每小时运行一次。然而,它发生了两个问题:1 - 询问问题的框没有出现 2 - 它没有在 10 分钟后关闭,但在运行脚本时却像我使用了 now 选项一样
想法?
剧本:
#!/bin/bash
date=`date`
usuario=`who | sed q | awk -F" " '{print $1}'`
export XAUTHORITY=/home/$usuario/.Xauthority
if zenity --question --text="Seu micro ser desligado em 10 minutos. Tudo bem?" --title="Desligar?" --ok-label="Prorrogar" --cancel-label="Pode Desligar" --timeout=300; then
echo "NAO DESLIGOU "$date >> /tmp/testes_desligar;
else
echo "DESLIGOU "$date >> /tmp/testes_desligar;
/sbin/shutdown -h +10; #already tried shutdown -h 10 but same thing happens...
fi
CRON 作业(在 /etc/crontab 上):
48 0-7,16-23 * * * root /home/myuser/shell/desliga.sh
答案1
在这两个问题之间,您可能需要:
对于 1) 如果脚本的某些部分需要 root 访问权限,请编辑 sudoers 文件(使用“visudo”)。网上有很多关于如何执行此操作的信息。
对于 2),这听起来像是脚本调试问题。如果您从终端运行脚本而不是等待 cron 启动它,是否会得到相同的行为?如果您以 root (sudo) 身份运行它,行为会有所不同吗?
您可能还考虑在 if 语句中添加[[
and 。 +1 给@Elder Geek 以作参考。]]