systemctl控制crontab
时间: 2023-11-28 16:46:00 浏览: 92
systemctl是用于管理systemd系统和服务管理器的命令行工具,而crontab是用于在Linux系统上运行计划任务的命令。这两个命令没有直接的联系,但是可以通过systemd timer来控制crontab任务的执行。下面是一个简单的例子:
1.创建一个systemd timer文件,例如/etc/systemd/system/mytimer.timer,内容如下:
```
[Unit]
Description=My Timer
[Timer]
OnCalendar=*-*-* *:*:0/30
Unit=myjob.service
[Install]
WantedBy=timers.target
```
这个timer文件的作用是每30分钟执行一次myjob.service服务。
2.创建一个systemd service文件,例如/etc/systemd/system/myjob.service,内容如下:
```
[Unit]
Description=My Job
[Service]
Type=simple
ExecStart=/bin/bash /path/to/myjob.sh
```
这个service文件的作用是执行myjob.sh脚本。
3.创建一个crontab任务,例如:
```
* * * * * /usr/bin/systemctl start mytimer.timer
```
这个任务的作用是每分钟执行一次systemctl start mytimer.timer命令,从而触发systemd timer执行myjob.service服务。
需要注意的是,systemd timer和crontab都可以用来执行计划任务,但是systemd timer更加灵活和可靠,因为它可以处理系统休眠和唤醒等情况,而crontab则不能。因此,在使用计划任务时,建议优先考虑使用systemd timer。
阅读全文