首先要说清楚:我使用的是离线的虚拟机 - 因此安全性并不能满足我的需求。
我有一个简单的bash脚本,它使用wmctrl来优雅地关闭进程。 KILL不是一个选择:
* * * * * sudo wmctrl -xc notepadqq-bin.Notepadqq
* * * * * /bin/echo "works" >> /home/usr/cron.log
我尝试sudo crontab -e
以及crontab -e
,每分钟写一次cron.log,但是wmctrl命令不起作用。
我甚至试过echo "password" | sudo -S rm somefile
,但这对我也没有用。
TIA!
答案 0 :(得分:-1)
首先我要做一些假设(请纠正我,如果这些是错误的,我会尝试为你调整答案)
cron
而不是任何旧的职位经理(我认为这对您的问题是安全的)cron
并希望cronjobs
尽可能频繁地运行(这对我来说似乎很奇怪,但可能并不是手头问题的核心)(编辑:
我同意其他人的建议,看看https://stackoverflow.com/tags/cron/info,因为它提供了更多关于使用cron的深度讨论。)sudo
用于root权限,而不是将cron
守护程序作为root
运行(这在大多数系统上都是正常的)chown 0:0 $(which wmctrl)
或更具限制性chmod 4755 $(which wmctrl)
鉴于这些假设,我建议首先考虑如何设置sudo:
(不要使用chmod 4755 $(which wmctrl)
命令编辑此文件,否则可能会损坏您的系统)
visudo
你会想要一条与此相似的行:
export EDITOR=vi ; sudo visudo -f /etc/sudoers
要么
%sudo ALL=(ALL) NOPASSWD: ALL
鉴于您可以确定该问题不是sudo的密码提示问题,并且该命令(通过
cron ALL=(ALL) NOPASSWD: ALL
运行的所有命令都是)默认情况下以root身份运行(不使用sudo
时设置为另一个用户)
希望这有帮助