linux 利用 cron 定时服务来实现开机启动某些应用
前言
我会先介绍 linux 利用 cron 定时服务来实现开机启动的具体代码实现,然后再分析下这种开机启动方案的利弊。
代码语法例子
执行 crontab -e ,进入定时任务编辑模式。
crmsh
1 | # 假设我想开机执行的命令是 cd /var/www/node/ && npm run start |
利弊
这种利用 cron 的启动方式非常方便,因为几乎所有 linux 发行版都自带 cron 服务,所以此方法使用范围很广。
在此方法之前,我一度利用 /etc/rc.local
文件来实现启动。但其实并不是最优秀选择。因为:
/etc/rc.local
文件 如果卡死可能导致系统无法启动/etc/rc.local
文件启动的服务,其部分系统配置可能来不及生效。
对于上面的第 2 点,我详细解释下。比如说,我设置了 linux 的最大打开文件数,如果是用 /etc/rc.local
启动的,则可能我的应用还是会受到原始打开文件数设置的影响。
如果是我最上方说的 cron 方式启动,则是新的打开文件数配置。
这个经验,是我经过生产环境实践出来的。自此之后,我准备放弃 /etc/rc.local
的方式,统一都使用 cron 的方式来跑自脚本。
当然了,cron 方式还是有它的弊端。相比 Linux 的 systemctl 服务,systemctl 服务也能实现开机启动,同时还能停止服务,重启服务。这种方式确实更灵活一些。
但是 systemctl 是需要把脚本命令注册成服务的,这个就是另一个话题了。一般情况下,对于简单的执行脚本的场景,我还是推荐使用 cron 服务自启动。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Hyper Tech!
评论