温馨提示×

如何定时启动linux进程

小樊
53
2026-09-06 15:36:56
栏目: 智能运维

在 Linux 中,定时启动进程常见有以下几种方式,按使用场景从简单到高级说明:


一、使用 cron(最常用,适合周期性任务)

1. 编辑定时任务

crontab -e

2. 基本格式

分 时 日 月 周 命令

3. 示例

  • 每天 03:30 执行脚本
30 3 * * * /home/user/backup.sh
  • 每 10 分钟执行一次
*/10 * * * * /usr/bin/python3 /home/user/task.py
  • 每周一 8:00
0 8 * * 1 /home/user/weekly.sh

4. 查看和删除

crontab -l      # 查看
crontab -r      # 删除

✅ 适合:定时脚本、备份、清理任务


二、使用 at(一次性定时任务)

1. 安装(如未安装)

sudo apt install at      # Debian/Ubuntu
sudo yum install at      # CentOS

2. 使用示例

at 23:00

然后输入:

/home/user/run.sh

Ctrl+D 结束

3. 其他时间写法

at now + 1 hour
at 2026-01-20 10:00

✅ 适合:只运行一次的定时任务


三、使用 systemd timer(现代服务器推荐)

1. 创建 service

# /etc/systemd/system/mytask.service
[Unit]
Description=My Task

[Service]
ExecStart=/home/user/mytask.sh

2. 创建 timer

# /etc/systemd/system/mytask.timer
[Unit]
Description=Run My Task Daily

[Timer]
OnCalendar=*-*-* 03:30:00
Persistent=true

[Install]
WantedBy=timers.target

3. 启用

systemctl daemon-reload
systemctl enable --now mytask.timer

✅ 适合:系统级服务、需要日志、高可靠性


四、使用 sleep + nohup(简单但不够规范)

nohup bash -c 'sleep 3600 && /home/user/task.sh' &

⚠ 不推荐用于生产环境


五、如何选择?

场景 推荐方式
周期任务 cron
一次性任务 at
系统服务 systemd timer
临时测试 sleep

如果你有具体需求(例如:每隔 5 分钟、开机自启、带参数、容器环境),可以告诉我,我可以给你精确示例。

0