报错信息
运行cron时显示了"new crontab is installing",然而事实是根本没有运行crontab里的命令
*/1 * * * * date >> /tmp/mydate
查找解决方法时发现有两个可能的原因
1. 未添加必要的环境变量
cron跑指令和在shell里直接写是不一样的,cron并不知道哪个路径是他需要用来跑指令的,所以需要在指令或shell文件中指定路径(我没做因为没看懂),或者直接添加环境变量(我的解决方法)
- 检查你的环境变量,如果没有这个
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
- 编辑.bashrc
vim ~/.bashrc
- 加上这句话
export PATH=$PATH:/usr/sbin
PS. 这个完成后如果还是不行的话
2. 未下载需要的包
我用的centos8发行版有两个包需要下载,cronie和crontabs,直接yum下载
完成后可以systemctl status crond
来查看crond服务状态,一般来说可能需要重启计算机,状态面板可以按q退出。
systemctl无法运行
这是我遇到的第二个报错,同样地需要在完成步骤后重启计算机
wsl2如今已经内置systemctl命令(但是我的不行),还是各种下载安装和编辑文件
1. 如果你只用systemctl
- 新建wsl.conf文件
touch /etc/wsl.conf
- 写入
[boot]
systemd=true
重启计算机。应该能用了
2. 如果你还是想用service
- 检查下载安装initscripts包,系统会自动跳转到systemctl