作为 root,我运行了三个日后台进程
dd if=/dev/urandom of=/dev/null &
dd if=/dev/urandom of=/dev/null &
dd if=/dev/urandom of=/dev/null &
以 root 身份编辑 crontab 并设置一项任务来终止每分钟由 root 运行的所有 dd 进程
crontab -e
* * * * * pkill -u root dd
但是当我使用顶部 监控进程时 dd 进程不会被终止。为什么?
来自 /var/log/syslog 的消息:
Dec 9 12:33:01 champion CRON[3395]: Authentication failure
Dec 9 12:33:29 champion crontab[3383]: (root) END EDIT (root)
Dec 9 12:34:01 champion cron[1432]: Authentication failure
Dec 9 12:34:01 champion CRON[3398]: Authentication failure
尝试了这些建议,但没有帮助:
使用以下命令调用 crontab:
crontab -e -u 根
确保 cronjob 文件末尾有一个空行,这意味着每一行都以换行符结尾。
答案1
根据以下诊断输出pwck -r
:
no matching password file entry in /etc/shadow add user 'root' in /etc/shadow?
您可以看到问题与此处描述的相同:
您可以通过pwck
再次运行来修复此问题,这次以读写模式运行
sudo pwck
并接受建议的操作,为用户 root 添加适当的影子文件条目。
答案2
您是否确定以 root 身份编写 crontab?
sudo crontab -e
非 root 帐户无法终止 root 拥有的进程。