目录

1. 基础说明

2. 编辑启动文件

3. 给启动文件添加权限

4. 设置软连接


1. 基础说明

将程序设置为开机启动的方法不止一种,这里记录的,应该是最常用的一种。

root用户执行命令:ll /etc/rc.d/

可以看到有下面这些文件:

[centos@ip-172-31-42-26 init.d]$ ll /etc/rc.d/
总用量 16K
drwxr-xr-x. 10 root root  127 10/30 22:57 .
drwxr-xr-x. 85 root root 8.0K 06/02 03:42 ..
drwxr-xr-x.  2 root root   70 06/02 03:10 init.d
drwxr-xr-x.  2 root root   45 10/30 22:57 rc0.d
drwxr-xr-x.  2 root root   45 10/30 22:57 rc1.d
drwxr-xr-x.  2 root root   45 10/30 22:57 rc2.d
drwxr-xr-x.  2 root root   45 10/30 22:57 rc3.d
drwxr-xr-x.  2 root root   45 10/30 22:57 rc4.d
drwxr-xr-x.  2 root root   45 10/30 22:57 rc5.d
drwxr-xr-x.  2 root root   45 10/30 22:57 rc6.d
-rw-r--r--.  1 root root  473 04/25 17:19 rc.local

其中 rc0~6.d 中的 0~6 代表运行级别:

0:系统停机(关机)模式,系统默认运行级别不能设置为0,否则不能正常启动,一开机就自动关机。
1:单用户模式,root权限,用于系统维护,禁止远程登陆,就像Windows下的安全模式登录。
2:多用户模式,没有NFS网络支持。
3:完整的多用户文本模式,有NFS,登陆后进入控制台命令行模式。
4:系统未使用,保留一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置。
5:图形化模式,登陆后进入图形GUI模式或GNOME、KDE图形化界面,如X Window系统。
6:重启模式,默认运行级别不能设为6,否则不能正常启动,就会一直开机重启开机重启。

设置程序开机启动,要做的事情就是:

  • 在 init.d 目录下创建一个启动脚本(将程序启动命令放在里面)
  • 然后增加它的可执行权限
  • 最后设置 rcxx.d 到启动脚本的软连接

2. 编辑启动文件

启动文件示例如下,编辑之后保存(我设置的名字是:ssserverctl):

#!/bin/bash### BEGIN INIT INFO
# Provides:          Neucrack
# Required-Start:    $remote_fs $syslog $network $named
# Required-Stop:     $remote_fs $syslog $network
# Should-Start:      $network $portmap
# Should-Stop:       $network $portmap
# X-Start-Before:    nis
# X-Stop-After:      nis
# Default-Start:     3 5
# Default-Stop:      0 1 2 4 6
# X-Interactive:     true
# Short-Description: ss auto start script
# Description:       shadowsocks auto start script,
#                    This file should be used to construct scripts to be
#                    placed in /etc/init.d.
### END INIT INFOcase "$1" instart)`nohup ssserver -c /opt/config/shadowsocks.json > ~/backup/temp/connect.log 2>&1 &`;;stop)`nohup ps aux | grep ssserver | awk '{print $2}' | xargs kill -9 2>&1 &`;;restart)$0 stop$0 start;;*)echo "Usage: $0 {start|stop|restart}"exit 1;;
esac

需要注意的是,启动命令不要是阻塞式的,避免脚本执行之后等待输入。

3. 给启动文件添加权限

执行命令:chmod +x ssserverctl

[root@izj6ca57bbyivzigu89mfoz:init.d]$ ll
总用量 64
-rwxr-xr-x 1 root root   972 8月  25 23:36 ssserverctl

设置完成之后,可以执行下面的命令来检查脚本是否有效(start/stop对应脚本里面的参数):

/etc/init.d/ssserverctl start/etc/init.d/ssserverctl stop

4. 设置软连接

设置软连接的时候,要注意命名规则。

查看已有的软连接:ll /etc/rc.d/rc3.d/

[root@izj6ca57bbyivzigu89mfoz:init.d]$ ll /etc/rc.d/rc3.d/
总用量 0
lrwxrwxrwx. 1 root root 20 8月  18 2017 K50netconsole -> ../init.d/netconsole
lrwxrwxrwx. 1 root root 17 8月  18 2017 S10network -> ../init.d/network
lrwxrwxrwx  1 root root 22 8月  24 2017 S15staragentctl -> ../init.d/staragentctl
lrwxrwxrwx  1 root root 15 8月  13 19:42 S50aegis -> ../init.d/aegis
lrwxrwxrwx  1 root root 16 8月  13 19:42 S64mysqld -> ../init.d/mysqld
lrwxrwxrwx  1 root root 19 8月  24 2017 S85apachectl -> ../init.d/apachectl
lrwxrwxrwx  1 root root 17 8月  24 2017 S85php-fpm -> ../init.d/php-fpm
lrwxrwxrwx  1 root root 23 8月  25 23:42 S91ssserverctl -> /etc/init.d/ssserverctl

可以发现在启动脚本前面都加了 “K数字”,或者 “S数字”

其中 K 表示 Kill 某个程序,S 表示 Start 某个程序

后面紧跟着的数字,表示启动/停止某个程序的顺序,数字越小的越先启动(数字的具体值可以自己根据情况自行设定)

我这里设置软连接用的命令是:

ln -s /etc/init.d/ssserverctl /etc/rc3.d/S91ssserverctl

如果要设置程序关机自动停止,可以新增一个软连接:

ln -s /etc/init.d/ssserverctl /etc/rc0.d/K91ssserverctl

如此设置之后,开机重启,检查程序是否可以开机自动启动。

Linux 设置程序开机自动启动相关推荐

  1. linux中设置程序开机自动启动

    为什么80%的码农都做不了架构师?>>>    centos/redhat 设置开机自动启动程序的方法 一.利用chkconfig把程序添加为系统服务 1.编写chkconfig可以 ...

  2. Linux设置程序开机启动-tomcat开机启动

    假设我有一个tomcat应用需要开机启动. 前提你的JAVA环境变量已经配置好没有问题,检测方法如图 然后找到tomcat的目录,我的目录是 /home/yuqing_4.0/tomcat_share ...

  3. C#.NET Form设置/取消开机自动运行,判断程序是否已经设置成开机自动启动(转载)...

    #region//开机自动运行         private void CB_Auto_CheckedChanged(object sender, EventArgs e)         {//C ...

  4. CentOS设置程序开机自启动的方法

    在CentOS或者RedHat其他系统下,如果是后面安装的服务,如httpd.mysqld.postfix等,安装后系统默认不会自动启动的.就算手动执行/etc/init.d/mysqld start ...

  5. linux设置开机自启服务,linux设置服务开机自启动的三种方式

    linux设置服务开机自启动的三种方式 这里介绍一下linux开机自动启动的几种方法,共计3种,大家可以借鉴一下!经验里面以centos 5.3系统为例! 方法1:.利用ntsysv命令进行设置,利用 ...

  6. linux httpd 开机启动,Linux设置Apache开机启动

    在Linux下,如果是yum安装Apache,则会默认把服务添加进系统服务中,只需要使用chkconfig来设置开机启动就可以实现Apache开机启动.但如果编译安装Apache,则需要先把Apach ...

  7. 设置Nginx开机自动启动(centos6.8上亲测可用)

    vim /etc/init.d/nginx 粘贴 #!/bin/bash # nginx Startup script for the Nginx HTTP Server # it is v.0.0. ...

  8. 【CentOS】设置服务开机自动启动

    CentOS安装好apache.mysql等服务器程序后,并没有设置成开机自动启动的,为避免重启后还要手动开启web等服务器,还是做下设置好,其实设置很简单,用chkconfig命令就行了. 例如,要 ...

  9. Centos设置程序开机自启的方法

    [转]CentOS设置程序开机自启动的方法 转自:http://www.centos.bz/2011/09/centos-setup-process-startup-boot/ 在CentOS系统下, ...

最新文章

  1. activiti部署、执行,完成简单示例
  2. mysql 负载 查看_Mysql-命令查询当前正在负载运行的SQL语句
  3. 重磅推荐:2020年人工智能最精彩的25篇论文(附下载)
  4. c语言双引号和单引号的区别
  5. MySQL主从延时这么长,要怎么优化?
  6. Struts标签和OGNL表达式
  7. flatmap_flatMap()与concatMap()与concatMapEager()– RxJava常见问题解答
  8. Flutter项目实战教程分享、基础使用、性能优化、每日积累
  9. Python3 局部变量与全局变量作用域
  10. 【ElasticSearch 】ElasticSearch监控工具 cerebro
  11. OpenShift 之 Quarkus(3)用独立的Prometheus监控Quarkus应用
  12. win7系统计算机无最小化,win7纯净版系统任务栏无法显示网页最小化窗口怎么办...
  13. 10. 王道考研-树与二叉树
  14. 敏捷无敌(13)之兵不厌诈
  15. 向量的范数(有例子,简单好理解)
  16. Dev5.4.0由于与64位的版本不兼容的问题解决方案
  17. 突发奇想:用单片机开发一款最纯粹的智能水杯方案
  18. 32位计算机64位计算机实质,4G内存电脑安装32位还是64位win7系统?实际详细性能测试!...
  19. [转载] 网络硬件发展史
  20. 紫光同创国产FPGA学习之Fabric Inserter

热门文章

  1. Android 入门开发指南之三 -- 在其他平台下开发
  2. 用博奥如何导入单项工程电子表_博奥常见问题处理汇总
  3. InterValue项目双周报:20200518-20200531
  4. 泊松是法国数学家、物理学家和力学家。他一生致力科学事业,成果颇多。 有许多著名的公式定理以他的名字命名,比如概率论中著名的泊松分布。
  5. 文件不以‘%PDF-’开始 解决方案
  6. vue调用手机浏览器打开pdf_vue插件开发之使用pdf.js实现手机端在线预览pdf文档的方法...
  7. 微信官方文档学习——API
  8. CentOS7.5 中 WAS9.0 安装
  9. php制作万年历的步骤_时间的宠儿,时尚的经典,它是经久不衰的万年历手表
  10. 微信小程序字体设置教程