系统的服务在开机时一般都可以自动启动,那我们程序自己写的程序呢?
 
windows系统在“开始”——〉“所有程序”——〉“启动”里面放个快捷方式就行,那Linux下呢?
 
这也是一个比较简单的问题,有不少的方法可以解决,这里介绍三种方法。因为是简单介绍,所以具体细节不是很详细,可以通过man看看相关手册。
 
一、/etc/rc.local
这是一个最简单的方法,编辑“/etc/rc.local”,把启动程序的shell命令输入进去即可,类似于windows下的“启动”。
 
例如,每次开机时要执行一个haha.sh,这个脚本放在/opt下面,那就可以在“/etc/rc.local”中加一行“/opt/./haha.sh”,或者两行“cd /opt”和“./haha.sh”。
 
二、crontab
通过crontab可以设定程序的执行时间表,例如让程序在每天的8点,或者每个星期一的10点执行一次。
crontab -l 列出时间表;
crontab -e编辑时间表;
crontab -d删除时间表;
 
“-l”没什么可说的,就是一个查看而已;
“-e”是编辑,和vi没什么差别(其实就是用vi编辑一个特定文件);
“-d”基本不用,因为它把该用户所有的时间表都删除了,一般都是用“-e”编辑把不要了的时间表逐行删除;
 
那到底该如何编辑呢?
 
crontab文件的格式是:M H D m d CMD。
一个6个字段,其中最后一个CMD就是所要执行的程序,如haha.sh。
M:分钟(0-59)
H:小时(0-23)
D:日期(1-31)
m:月份(1-12)
d:一个星期中的某天(0-6,0代表周日)
 
这5个时间字段用空格隔开,其值可以是一个数字,也可以用逗号隔开的多个数字(或其他) ,如果不需设置,则默认为“*”。
 
例如,每天的8点5分执行haha.sh,就是“5 8 * * * /opt/./haha.sh”。
 
好像和“开机程序自动启动”扯远了,现在回归正题。其实上面介绍的crontab的功能已经具备了开机自动启动的能力,可以写一个监测脚本,每5分钟执行一次(*/5 * * * * ./haha.sh),如果程序不在了就重新启动一次。
 
三、注册系统服务
操作系统自带的服务,如ssh,ftp等等,开机都是自动启动的,我们也可以通过这种方式让自己开发的程序提高“身价”。
 
可以看到“/etc/rc.d/init.d”下有很多的文件,每个文件都是可以看到内容的,其实都是一些shell脚本。
系统服务的启动就是通过“/etc/rc.d/init.d”中的脚本文件实现的。我们也可以写一个自己的脚本放在这里。
脚本文件的内容也很简单,类似于这个样子(例如起个名字叫做“hahad”):
. /etc/init.d/functions
start() {
        echo "Starting my process "
        cd /opt
        ./haha.sh
}
stop() {
        killall haha.sh
        echo "Stoped"
}
写了脚本文件之后事情还没有完,继续完成以下几个步骤:
chmod +x hahad                    #增加执行权限
chkconfig --add hahad             #把hahad添加到系统服务列表
chkconfig hahad on                 #设定hahad的开关(on/off)
chkconfig --list hahad               #就可以看到已经注册了hahad的服务
 
这时候才完成了全部工作。

Linux下如何让自己的程序在开机时自动启动相关推荐

  1. 使用 msconfig 工具阻止程序开机时自动启动

    微软系统配置实用程序(msconfig)介绍 msconfig 是 Windows XP 中提供的用于修改系统配置的实用工具.它最主要的用途是调整系统的启动参数,用户可以使用它来禁止指定的程序在操作系 ...

  2. linux下 为自己编写的程序 添加tab自动补全 功能

    linux下 为自己编写的程序 添加tab自动补全功能 入门 complete 在我的tmp下随便写了一个a.sh, 为他补全 edit /etc/bash_completion.d/foo _foo ...

  3. 在Linux下使用linuxdeployqt发布Qt程序

    一.简介 linuxdeployqt 是Linux下的qt打包工具,可以将应用程序使用的资源(如库,图形和插件)复制到二进制运行文件所在的文件夹中. 二.安装linuxdeployqt 去github ...

  4. 【OpenCV】Linux 下用 g++ 编译 OpenCV 程序

    编译命令: g++ gaussianBlur.cpp -o test `pkg-config --cflags --libs opencv` 执行编译生成的可执行文件: ./test gaussian ...

  5. linux下使用AppImage打包qt程序

    linux下使用AppImage打包qt程序 下载工具 1.1 linuxdeployqt 下载地址:https://github.com/probonopd/linuxdeployqt/releas ...

  6. Linux下推荐的常用应用程序列表

    Linux下推荐的常用应用程序列表 一,网页浏览 1,firefox firefox是现在最火的一个浏览器,支持好多扩展和插件,也有很多漂亮的主题.firefox就是mozilla-firefox,他 ...

  7. Linux下配置IPV6,C程序适配IPV6

    Linux下配置IPV6,C程序适配IPV6 1. 环境 CentOS7.7 最小系统 2. linux下配置IPV6 需要先确认CentOS7.7操作系统中已安装 ip6tables 组件 修改网络 ...

  8. linux shell脚本攻略_(python)Linux下shell脚本监控Tomcat的状态并实现自动启动步骤...

    今天为大家带来的内容是:(python)Linux下shell脚本监控Tomcat的状态并实现自动启动步骤 本文内容主要介绍了Linux下shell脚本监控Tomcat的状态并实现自动启动的步骤,文章 ...

  9. linux通用自启动管理,linux下通过xinetd服务管理 rsync 实现开机自启动

    1.1 xinetd服务配置 1.1.1 检查xinetd服务是否安装 [root@backup ~]# rpm -qa xinetd [root@backup ~]# rpm -ql xinetd ...

最新文章

  1. 区块链软件公司用区块链技能重塑科学出书社
  2. redis 模糊删除实现
  3. u-boot的nand驱动写过程分析
  4. VC#2005 Starter Kit: Screen Saver 使用介绍
  5. Java黑皮书课后题第8章:***8.35(最大块)给定一个元素为0或者1的方阵,编写程序,找到一个元素都为1的最大的子方阵。程序提示用户输入矩阵的行数。然后显示最大的子方阵的第一个元素、行数
  6. FFMPEG结构体分析之AVPacket
  7. mysql 报错解决思考Expression #5 of SELECT list is not in GROUP BY clause and contains nonaggregated column
  8. 中通科技移动自动化测试的革新与探索
  9. python列表、元组、字典、集合区别及他们之间的转换(超全)
  10. 趣学 C 语言(四)—— 字符串与字符数组
  11. ZZULIOJ1049
  12. DOX-HMDN-PEI 阿霉素-二氧化锰-聚乙烯亚胺/PEI-g-PLO(DCA) 聚鸟氨酸-聚乙烯亚胺
  13. raid5换硬盘显示ready_[原创]戴尔服务器raid5更换硬盘状态foreign怎么改成ready
  14. Ping命令(Ping网络打印机)
  15. 【告别小白】什么是标志性语言?
  16. php 鼠标经过 图片,jq实现酷炫的鼠标经过图片翻滚效果_jquery
  17. spark学习02天-scala读取文件,词频统计
  18. 基于矢量切片的电子地图配图(三)配图准备
  19. 如何计算近似纳什均衡_如何通俗的理解纳什均衡点?
  20. 西门子低代码部署亚马逊AWS容器服务最佳实践

热门文章

  1. 【题解】Luogu P5279 [ZJOI2019]麻将
  2. 爬虫基础-登陆github获取个人信息
  3. 利用 PortableBasemapServer 发布地图服务
  4. 把 Eclipse 中的工程 Push 到 Github(适用 Windows 平台)
  5. 转转转![Spring MVC] - 500/404错误处理-SimpleMappingExceptionResolver
  6. 网络安全法今日实施 互联网企业对隐私政策重视不足
  7. 修改 keystore密码
  8. idea 使用正则表达式 进行匹配替换
  9. HTTP请求常见状态码
  10. 【Java TCP/IP Socket】TCP Socket通信中由read返回值造成的的死锁问题(含代码)(转)...