DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  4737 随笔 :: 2 文章 :: 542 评论 :: 1615万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

开机自启动脚本

网上常见的脚本开机自启方法是:

假设要自启的脚本位于 /home/user/test.sh

  • 给脚本可执行的权限
sudo chmod +x /home/user/test.sh
  • 将脚本文件放到 /etc/init.d/ 目录下
sudo cp /home/user/test.sh /etc/init.d
  • 链接到/etc/rc.d/
sudo ln -s /etc/init.d/start_my_app /etc/rc.d/

这样在新的diban系统中可能不能生效,要LSB 兼容之类 ,脚本还要提供start, stop, restart, force-reload,等命令,具体参考
https://wiki.debian.org/LSBInitScripts


因此这里推荐使用另外一种超级简单的方法:

bash中输入(推荐以管理员的状态)

crontab -e

第一次使用这个的话,会提示选择一种编辑器,根据个人喜好选择吧。然后就会进入对应编辑器的编辑界面,另起一行输入

@reboot /home/user/test.sh 

reboot 后面即脚本文件位置,然后保存即可。Ok,脚本现在已经会在开机时自动运行了。

定时任务

同样的bash里输入 crontab -e

然后编辑界面加上具体的命令语句。基本语法为

 
  1.  
    # .---------------- minute (0 - 59)
  2.  
    # | .------------- hour (0 - 23)
  3.  
    # | | .---------- day of month (1 - 31)
  4.  
    # | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
  5.  
    # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
  6.  
    # | | | | |
  7.  
    # * * * * * user-name command to be executed
  8.  
     
 

比如:
每天的凌晨4点半运行test.sh脚本

30 04 * * * /home/user/test.sh

每周的周一17:30执行test.sh脚本

30 17 * * 1 /home/user/test.sh

或间隔15分钟执行一次test.sh脚本

*/15 * * * * /home/user/test.sh

这个指在9:05 至17:05的范围内,每个钟头的过5分会运行一次,比如10:05、11:05会运行

05 09-17 * * * /home/user/test.sh

关于

bash中输入

service --status-all

会发现有个cron,。就是cron 这个服务实现了前文中那些定时任务。而cron也是在/etc/init.d/中注册从而自启的,启动后它会扫描/var/spool/cron 、/etc/cron.d目录和 /etc/anacrontab文件,扫描到的文件中定义了各种定时任务。

另外关于crontab命令,: 后面的tab其实就相当table的缩写,因为系统中的每个用户(包括管理员)都会有一个对应的cron 文件,位于 /var/spool/cron/crontabs/ 目录下,因此table可以简单理解为管理这些用户cron文件的表。需要注意的是不要直接修改用户对应的cron文件,而应该使用 crontab -e 命令修改,因为这样修改保存后,它会立即生效。

posted on   DoubleLi  阅读(1242)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2019-01-10 WINDOWS和linux下stdcall
2019-01-10 实现单实例的应用程序
2019-01-10 Boost:shared_memory_object --- 共享内存
2019-01-10 Windows进程单实例运行
2019-01-10 boost:进程管理
2019-01-10 实现单实例应用程序的三种方法
2019-01-10 QT中实现应用程序的单例化
点击右上角即可分享
微信分享提示