总结
豆包 AI 助手文章总结

Linux系统如何让程序开机时自动启动

小云云
发布: 2018-03-19 15:28:00
原创
3996人浏览过

linux系统如何让程序开机时自动启动 核心提示:系统的服务在开机时一般都可以自动启动,那在linux系统下如果想要程序在开机时自动启动怎么办?我们知道在 windows系统“开始”-->“所有程序”-->“启动”里面放个快捷方式就行,那linux系统下呢?...系统的服务在开机时一般都可以自动启动,那在linux系统下如果想要程序在开机时自动启动怎么办?我们知道在 windows系统“开始”-->“所有程序”-->“启动”里面放个快捷方式就行,那linux系统下呢?

这也是一个比较简单的问题,有不少的方法可以解决,这里介绍三种方法。因为是简单介绍,所以具体细节不是很详细,可以通过man看看相关手册。

一、/etc/rc.local
这是一个最简单的方法,编辑“/etc/rc.local”,把启动程序的shell命令输入进去即可(要输入命令的全路径),类似于windows下的“启动”。
使用命令 vi  /etc/rc.local    
然后在文件最后一行添加要执行程序的全路径。
例如,每次开机时要执行一个haha.sh,这个脚本放在/opt下面,那就可以在“/etc/rc.local”中加一行“/opt/./haha.sh”,或者两行“cd /opt”和“./haha.sh”。

二、crontab(类似于windows的任务计划服务)
通过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),如果程序不在了就重新启动一次。(*/5 )表示每5分钟

三、注册系统服务
操作系统自带的服务,如ssh,ftp等等,开机都是自动启动的,我们也可以通过这种方式让自己开发的程序提高“身价”。

比如我想把某个已经安装了的服务添加为系统服务,可以执行以下命令:
chkconfig --add 服务名称          (首先,添加为系统服务,注意add前面有两个横杠)
 
chkconfig -leve 启动级别 服务名 on        
(说明,3级别代表在命令行模式启动,5级别代表在图形界面启动,on表示开启)
 
chkconfig -leve 启动级别 服务名 off              
(说明,off表示关闭自启动)
 
例如:chkconfig -level 3 mysql on                     (说明:让mysql服务在命令行模式,随系统启动)
也可以使用   chkconfig --add 服务名称    来删除系统服务
******************************************************************************************如果要查看哪些服务被添加为系统服务可以使用命令 :
  ntsysv  或者chkconfig --list
 
如果要查看哪些程序被添加为自启动,可以使用命令  :
cat   /etc/rc.local    (查看这个文件中添加了哪些程序路径)
*******************************************************************************************

下面举例说说,如何把一个shell脚本添加为系统服务,并跟随系统启动:
可以看到“/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下Redis数据库的安装方法与自动启动脚本分享

nginx开机自动启动服务

Linux自动启动MySQL

以上就是Linux系统如何让程序开机时自动启动的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
相关标签:
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
豆包 AI 助手文章总结
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号