linux 利用 cron 实现 程序开机启动/cron任务的多种实现方法/cron重启/cron日志开启
方法一、登录服务器,直接修改:
crontab -e
然后添加:
@reboot [nohup] {命令}
...
# 或者定时任务指令
保存退出:
ctrl + O
ctrl + x
方法二、指定用户进行修改:
sudo crontab -u {username} -e
然后添加:
@reboot [nohup] {命令}
...
# 或者定时任务指令
保存退出:
ctrl + O
ctrl + x
以上两种方法,可以提前将 任务指令 封装进一个文件,然后再统一导入: sudo crontab -u {username} {filename}
务必注意,用导入文件的形式添加定时任务,会进行覆盖重写操作(先清空已有定时任务,再从文件中导入)
解决办法:https://www.cnblogs.com/lowmanisbusy/p/12048054.html
方法三、修改 /etc/crontab:
sudo vim /etc/crontab
添加:
@reboot {username} [nohup] {命令}
...
# 或者定时任务指令
保存退出
该方法必须指定用户,该方法的好处是,可以将所有用户的crontab任务都在/etc/crontab文件中进行管理
(方法一和方法二会为用户单独维护一份crontab任务文件,不方便管理人员统一管理所有定时任务)
该方法本人在实际的操作过程中,无法通过远程发送指令的方式完成,必须需要打开一个交互式的shell窗口,手动修改.这里应该有权限限制
说明:
1. nohup 是用来让运行的程序忽略 SIGHUP 指令(因为在父程序退出后,所有的子程序会受到 SIGHUP 指令)从而保证运行的程序不退出, 根据实际情况决定是否使用该参数
(本人实际操作过程中,加入该参数时无法成功执行任务,请自测)
2. @reboot 只针对可登录服务器的用户生效, 如果使用不可登录服务器的用户执行该类型crontab任务,将会遭到忽略,执行失败
注意:
1.如果修改了服务器的时区或时间,必须将cron服务重启,否则仍然会按照原来的时区及时间执行定时任务
sudo -s
启动cron:/etc/init.d/cron start 或者 service cron start
重启:/etc/init.d/cron restart ( service cron restart )
关闭:/etc/init.d/cron stop ( service cron stop )
2.默认情况下,cron 服务的日志是关闭的,如果需要开启 cron 日志,可以执行以下步骤(本人操作环境 ubuntu 16.04)
sudo vim /etc/rsyslog.d/50-default.conf
找到以下行,将注释取消即可:
# cron.* /var/log/cron.log
重启 rsyslog:
sudo service rsyslog restart
重启 cron:
sudo service cron restart
查看日志:
tail -f /var/log/cron.log
当我仰望星空, 看见了涛涛江水, 闻到了人声鼎沸;可当我蓦然回望,再也触摸不到那逝去的时光,再也看不到那夕阳下的少年!
分类:
Linux_NOTES
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
2018-09-20 Django 一些少用却很实用的orm查询方法