CentOS7开机启动自己的脚本

CentOS开机启动脚本的顺序

如果**服务重启之后需要手工开启许多服务、工作及以后的维护相对比较繁琐、特地总结了下linux开机自动启动脚本所涉及的知识和方法、如下:
1、相关
基础知识点
1)redhat的启动方式和执行次序是:
加载内核
执行init程序
/etc/rc.d/rc.sysinit # 由init执行的第一个脚本
/etc/rc.d/rc $RUNLEVEL # $RUNLEVEL为缺省的运行模式
/etc/rc.d/rc.local #相应级别服务启动之后、在执行该
文件(其实也可以把需要执行的命令**写到该文件中)
/sbin/mingetty # 等待用户登录

在Redhat中,/etc/rc.d/rc.sysinit主要做在各个运行模式中相同的初始化工作,包括:
调入keymap以及系统字体
启动swapping
设置主机名
设置NIS域名
检查(fsck)并mount文件系统
打开quota
装载声卡模块
设置系统时钟
等等。
/etc/rc.d/rc则根据其参数指定的运行模式(运行级别,你在inittab文件中可以设置)来执行相应目录下的脚本。凡是以Kxx开头的
,都以stop为参数来调用;凡是以Sxx开头的,都以start为参数来调用。调用的顺序**按xx
从小到大来执行。(其中xx是数字、表示的是启动顺序)例如,假设缺省的运行模式是3,/etc/rc.d/rc就会按上述方式调用
/etc/rc.d/rc3.d/下的脚本。
值得一提的是,Redhat中的运行模式2、3、5都把/etc/rc.d/rc.local做为初始化脚本中
的最后一个,所以用户可以自己在这个文件中添加一些需要在其他初始化工作之后,登录之前执行的命令。

init在等待/etc/rc.d/rc执行完毕之后(因为在/etc/inittab中/etc/rc.d/rc的
action是wait),将在指定的各个虚拟终端上运行/sbin/mingetty,等待用户的登录。
至此,LINUX的启动结束。
2)init运行级别及指令
一、什么是INIT:
  init是Linux系统操作中不可缺少的程序之一。
  所谓的init进程,它是一个由内核启动的用户级进程。
  内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程。所以,init始终是第一个进程(其进程编号始终为1)。
  内核会在过去曾使用过init的几个地方查找它,它的正确位置(对Linux系统来说)是/sbin/init。如果内核找不到init,它就会试着运行/bin/sh,如果运行失败,系统的启动也会失败。
  二、运行级别
  那么,到底什么是运行级呢?
  简单的说,运行级就是操作系统当前正在运行的功能级别。这个级别从1到6
,具有不同的功能。
  不同的运行级定义如下
  # 0 – 停机(千万不能把initdefault 设置为0 )
  # 1 – 单用户模式 # s init s = init 1
  # 2 – 多用户,没有 NFS
  # 3 – 完全多用户模式(标准的运行级)
  # 4 – 没有用到
  # 5 – X11 多用户图形模式(xwindow)
  # 6 – 重新启动 (千万不要把initdefault 设置为6 )
  这些级别在/etc/inittab 文件里指定。这个文件是init
程序寻找的主要文件,最先运行的服务是放在/etc/rc.d
目录下的文件。在大多数的Linux 发行版本中,启动脚本都是位于
/etc/rc.d/init.d中的。这些脚本被用ln 命令连接到 /etc/rc.d/rcn.d
目录。(这里的n 就是运行级0-6)
3):chkconfig 命令(redhat 操作系统下)
不像DOS 或者Windows,Linux
可以有多种运行级。常见的就是多用户的2,3,4,5 ,很多人知道 5 是运行
X-Windows 的级别,而 0 就 是关机了。运行级的改变可以通过 init
命令来切换。例如,假设你要维护系统进入单用户状态,那么,可以使用 init 1
来切换。在 Linux
的运行级的切换过程中,系统会自动寻找对应运行级的目录/etc/rc[0-6].d下的K
和 S 开头的文件,按后面的数字顺序,执行这
些脚本。对这些脚本的维护,是很繁琐的一件事情,Linux 提供了chkconfig
命令用来更新和查询不同运行级上的系统服务。
语法为:

chkconfig –list [name]
chkconfig –add name
chkconfig –del name
chkconfig [–level levels] name
chkconfig [–level levels] name

chkconfig
有五项功能:添加服务,删除服务,列表服务,改变启动信息以及检查特定服务的启动状态。

chkconfig
没有参数运行时,显示用法。如果加上服务名,那么就检查这个服务是否在当前运行级启动。如果是,返回
true,否则返回 false。 –level
选项可以指定要查看的运行级而不一定是当前运行级。

如果在服务名后面指定了on,off 或者 reset,那么 chkconfig
会改变指定服务的启动信息。on 和 off 分别指服务在改变运行级时的
启动和停止。reset 指初始化服务信息,无论有问题的初始化脚本指定了什么。

对于 on 和 off 开关,系统默认只对运行级 3,4, 5有效,但是 reset
可以对所有运行级有效。指定 –level 选项时,可以选择特 定的运行级。

需要说明的是,对于每个运行级,只能有一个启动脚本或者停止脚本。当切换运行级时,init
不会重新启动已经启动的服务,也不会再 次去停止已经停止的服务。

选项介绍:

–level levels
指定运行级,由数字 0 到 7 构成的字符串,如:

–level 35 表示指定运行级3 和5。
要在运行级别3、4、5中停运 nfs 服务,使用下面的命令:chkconfig –level
345 nfs off

–add name
这个选项增加一项新的服务,chkconfig 确保每个运行级有一项 启动(S) 或者
杀死(K) 入口。如有缺少,则会从缺省的init 脚本自动 建立。

–del name
用来删除服务,并把相关符号连接从 /etc/rc[0-6].d 删除。

–list name
列表,如果指定了name
那么只是显示指定的服务名,否则,列出全部服务在不同运行级的状态。

运行级文件

每个被chkconfig管理的服务需要在对应的init.d
下的脚本加上两行或者更多行的注释。
第一行告诉 chkconfig
缺省启动的运行级以及启动和停止的优先级。如果某服务缺省不在任何运行级启动,那么使用

  • 代替运行级。
    第二行对服务进行描述,可以用 跨行注释。

例如,random.init 包含三行:
# chkconfig: 2345 20 80
# description: Saves and restores system entropy pool for
# higher quality random number generation.
表明 random 脚本应该在运行级 2, 3, 4, 5
启动,启动优先权为20,停止优先权为 80。

好了,介绍就到这里了,去看看自己目录下的/etc/rc.d/init.d 下的脚本吧。

设置自启动服务:chkconfig –level 345 nfs on

2.实例介绍:
1、在linux下安装了apache
服务(通过下载二进制文件经济编译安装、而非rpm包)、apache 服务启动命令:
/server/apache/bin/apachectl start
。让apache服务运行在运行级别3下面。命令如下:

1)touch /etc/rc.d/init.d/apache
vi /etc/rc.d/init.d/apache
chown -R root /etc/rc.d/init.d/apache
chmod 700 /etc/rc.d/init.d/apache
ln -s /etc/rc.d/init.d/apache /etc/rc.d/rc3.d/S60apache #S
是start的简写、代表启动、K是kill的简写、代表关闭。60数字
代表启动的顺序。(对于iptv系统而言、许多服务都是建立在数据库启动的前提下才能够正常启动的、可以通过该数字就行调整脚本的
启动顺序))

apache的内容:
#!/bin/bash
#Start httpd service
/server/apache/bin/apachectl start

至此 apache服务就可以在运行级别3下 随机自动启动了。(可以结合chkconfig
对启动服务进行相应的调整)**

如果 服务 器
重启之后需要手工开启许多服务、工作及以后的维护相对比较繁琐、特地总结了下
linux 下 开机 自动…

我是一个不怎么记事的人,有些配置在系统的目录下,配置了一次后就忘了,再也不想去系统的目录下找各种奇奇怪怪的目录和名字.就比如说这个CentOS7开机启动,在配置完了后的某一天,想要在加一个启动的服务,然而那时已经忘了以前是在哪个目录下配置的了,一个大写的懵逼,所以就自己新建一个脚本放在自己能找到的目录,只用在系统的目录下配置一次,以后就在自己新建的脚本里面写启动服务的命令就好了

[转]CentOS开机启动脚本,centos开机启动脚本

转载自  
我的一个Centos开机自启动脚本的制作   一、切换到/etc/init.d/  
二、制作sh脚本 vi andy.sh [plain]  #!/bin/sh      #add for chkconfig
  #chkconfig: 2345 70 30   #description: the description of the shell
  #关于脚本的简短描述   #processname: andyStart                  
 #第一个进程名,后边设置自启动的时候会用到        
#下面要启动服务的命令   /etc/init.d/mysqld start;   /etc/init.d/httpd
start;   /sbin/iptables -I INPUT -p tcp –dport 80 -j ACCEPT;   service
iptables save;   service iptables restart;   说明:
2345是指脚本的运行级别,即在2345这4种模式下都可以运行,234都是文本界面,5就是图形界面X
70是指脚本将来的启动顺序号,如果别的程序的启动顺序号比70小(比如44、45),则脚本需要等这些程序都启动以后才启动。
30是指系统关闭时,脚本的停止顺序号。 linux 下shell脚本执行多个命令的方法
  1.每个命令之间用;隔开  
说明:各命令的执行给果,不会影响其它命令的执行。换句话说,各个命令都会执行,但不保证每个命令都执行成功。
  2.每个命令之间用&&隔开  
说明:若前面的命令执行成功,才会去执行后面的命令。这样可以保证所有的命令执行完毕后,执行过程都是成功的。
  3.每个命令之间用||隔开  
说明:||是或的意思,只有前面的命令执行失败后才去执行下一条命令,直到执行成功一条命令为止。
  三、给脚本加上可执行权限:chmod +x andy.sh  
四、利用chkconfig命令将脚本设置为自启动:chkconfig –add andy.sh
五、重启一下试试吧!

转载自….

如果服务器重启之后需要手工开启许多服务、工作及以后的维护相对比较繁琐、特地总结了下linux下开机自动启动脚本所涉及的知识和方法、如下:
1、相关基础知识点
1)redhat的启动方式和执行次序是:
加载内核
执行init程序
/etc/rc.d/rc.sysinit # 由init执行的第一个脚本
/etc/rc.d/rc $RUNLEVEL # $RUNLEVEL为缺省的运行模式
/etc/rc.d/rc.local    
#相应级别服务启动之后、在执行该文件(其实也可以把需要执行的命令写到该文件中)
/sbin/mingetty # 等待用户登录

1. 自己新建一个脚本,如centnet-service.sh

经过后面的几个步骤后,这个脚本在开机的时候会执行,在这个脚本里面可以写你开机的时候想执行的命令,如启动tomcat,Oracle等服务

linux 开机启动脚本顺序。

在Redhat中,/etc/rc.d/rc.sysinit主要做在各个运行模式中相同的初始化工作,包括:
调入keymap以及系统字体
启动swapping
设置主机名
设置NIS域名
检查(fsck)并mount文件系统
打开quota
装载声卡模块
设置系统时钟
等等。
/etc/rc.d/rc则根据其参数指定的运行模式(运行级别,你在inittab文件中可以设置)来执行相应目录下的脚本。凡是以Kxx开头的
,都以stop为参数来调用;凡是以Sxx开头的,都以start为参数来调用。调用的顺序按xx
从小到大来执行。(其中xx是数字、表示的是启动顺序)例如,假设缺省的运行模式是3,/etc/rc.d/rc就会按上述方式调用
/etc/rc.d/rc3.d/下的脚本。
值得一提的是,Redhat中的运行模式2、3、5都把/etc/rc.d/rc.local做为初始化脚本中
的最后一个,所以用户可以自己在这个文件中添加一些需要在其他初始化工作之后,登录之前执行的命令。

2. 在脚本中输入启动服务的命令,如(开机启动tomcat):
#!/bin/bash
export JDK_HOME=/home/java/jdk1.8.0_91
export JAVA_HOME=/home/java/jdk1.8.0_91
/home/tomcat/apache-tomcat-8.0.36/bin/startup.sh

第一步:启动内核

init在等待/etc/rc.d/rc执行完毕之后(因为在/etc/inittab中/etc/rc.d/rc的
action是wait),将在指定的各个虚拟终端上运行/sbin/mingetty,等待用户的登录。
至此,LINUX的启动结束。
2)init运行级别及指令
一、什么是INIT:
init是Linux系统操作中不可缺少的程序之一。
所谓的init进程,它是一个由内核启动的用户级进程。
内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程。所以,init始终是第一个进程(其进程编号始终为1)。
内核会在过去曾使用过init的几个地方查找它,它的正确位置(对Linux系统来说)是/sbin/init。如果内核找不到init,它就会试着运行/bin/sh,如果运行失败,系统的启动也会失败。
二、运行级别
那么,到底什么是运行级呢?
简单的说,运行级就是操作系统当前正在运行的功能级别。这个级别从1到6
,具有不同的功能。
不同的运行级定义如下
# 0 – 停机(千万不能把initdefault 设置为0 )
# 1 – 单用户模式                                     # s   init s =
init 1
# 2 – 多用户,没有 NFS
# 3 – 完全多用户模式(标准的运行级)
# 4 – 没有用到
# 5 – X11 多用户图形模式(xwindow)
# 6 – 重新启动 (千万不要把initdefault 设置为6 )
这些级别在/etc/inittab 文件里指定。这个文件是init
程序寻找的主要文件,最先运行的服务是放在/etc/rc.d
目录下的文件。在大多数的Linux 发行版本中,启动脚本都是位于
/etc/rc.d/init.d中的。这些脚本被用ln 命令连接到 /etc/rc.d/rcn.d
目录。(这里的n 就是运行级0-6)
3):chkconfig 命令(redhat 操作系统下)
不像DOS 或者 Windows,Linux 可以有多种运行级。常见的就是多用户的2,3,4,5
,很多人知道 5 是运行 X-Windows 的级别,而 0 就     
是关机了。运行级的改变可以通过 init
命令来切换。例如,假设你要维护系统进入单用户状态,那么,可以使用 init 1
来切换。在       Linux
的运行级的切换过程中,系统会自动寻找对应运行级的目录/etc/rc[0-6].d下的K
和 S 开头的文件,按后面的数字顺序,执行这     
些脚本。对这些脚本的维护,是很繁琐的一件事情,Linux 提供了chkconfig
命令用来更新和查询不同运行级上的系统服务。
语法为:

3. 执行如下命令,将该脚本标记为可执行文件(添加可执行的权限)
chmod +x /home/centnet/centnet-service.sh

第二步:执行init (配置文件/etc/inittab)

chkconfig –list [name]
chkconfig –add name
chkconfig –del name
chkconfig [–level levels] name
chkconfig [–level levels] name

4. 执行如下命令将/etc/rc.d/rc.local文标记为可执行文件

在centos7中,/etc/rc.d/rc.local文件的权限被降低了,开机的时候执行在自己的脚本是不能起动一些服务的,执行下面的命令可以文件标记为可执行的文件

chmod +x /etc/rc.d/rc.local

第三步:启动相应的脚本,并且打开终端/etc/init.d 
rc.sysinit rc.d(里面的脚本) rc.local

chkconfig
有五项功能:添加服务,删除服务,列表服务,改变启动信息以及检查特定服务的启动状态。

5. 打开/etc/rc.d/rc.local文件,在最后面添加如下脚本
/home/centnet/centnet-service.sh

这样,centnet-service.sh这个脚本在开机的时候就会被执行了,以后再这里面写启动服务的命令就可以了

更多CentOS相关信息见CentOS 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=14

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-02/140947.htm

图片 1

第四步:启动login登录界面 login

chkconfig
没有参数运行时,显示用法。如果加上服务名,那么就检查这个服务是否在当前运行级启动。如果是,返回
true,否则返回      false。 –level
选项可以指定要查看的运行级而不一定是当前运行级。

第五步:在用户登录的时候执行sh脚本的顺序:每次登录的时候都会完全执行的
/etc/profile /etc/bashrc /root/.bashrc /root/.bash_profile。

如果在服务名后面指定了on,off 或者 reset,那么 chkconfig
会改变指定服务的启动信息。on 和 off 分别指服务在改变运行级时的     
启动和停止。reset 指初始化服务信息,无论有问题的初始化脚本指定了什么。

本文转自:

对于 on 和 off 开关,系统默认只对运行级 3,4, 5有效,但是 reset
可以对所有运行级有效。指定 –level 选项时,可以选择特       定的运行级。

开机启动脚本顺序。 第一步:启动内核
第二步:执行init (配置文件/etc/inittab)
第三步:启动相应的脚本,并且打开终端/etc/init.d r…

需要说明的是,对于每个运行级,只能有一个启动脚本或者停止脚本。当切换运行级时,init
不会重新启动已经启动的服务,也不会再      次去停止已经停止的服务。

选项介绍:

–level levels
指定运行级,由数字 0 到 7 构成的字符串,如:

–level 35 表示指定运行级3 和5。
要在运行级别3、4、5中停运 nfs 服务,使用下面的命令:chkconfig –level 345
nfs off

–add name
这个选项增加一项新的服务,chkconfig 确保每个运行级有一项 启动(S) 或者
杀死(K) 入口。如有缺少,则会从缺省的init 脚本自动      建立。

–del name
用来删除服务,并把相关符号连接从 /etc/rc[0-6].d 删除。

–list name
列表,如果指定了name
那么只是显示指定的服务名,否则,列出全部服务在不同运行级的状态。

运行级文件

每个被chkconfig 管理的服务需要在对应的init.d
下的脚本加上两行或者更多行的注释。
第一行告诉 chkconfig
缺省启动的运行级以及启动和停止的优先级。如果某服务缺省不在任何运行级启动,那么使用
– 代替运行级。
第二行对服务进行描述,可以用 跨行注释。

例如,random.init 包含三行:
# chkconfig: 2345 20 80
# description: Saves and restores system entropy pool for
# higher quality random number generation.
表明 random 脚本应该在运行级 2, 3, 4, 5
启动,启动优先权为20,停止优先权为 80。

好了,介绍就到这里了,去看看自己目录下的/etc/rc.d/init.d 下的脚本吧。

设置自启动服务:chkconfig –level 345 nfs on

  1. 实例介绍:
    1、在linux下安装了apache
    服务(通过下载二进制文件经济编译安装、而非rpm包)、apache
    服务启动命令:            /server/apache/bin/apachectl start   
    。让apache服务运行在运行级别3下面。  命令如下:

1)touch /etc/rc.d/init.d/apache
vi /etc/rc.d/init.d/apache
chown -R root /etc/rc.d/init.d/apache
chmod 700 /etc/rc.d/init.d/apache
ln -s /etc/rc.d/init.d/apache /etc/rc.d/rc3.d/S60apache   #S
是start的简写、代表启动、K是kill的简写、代表关闭。60数字       
代表启动的顺序。(对于iptv系统而言、许多服务都是建立在数据库启动的前提下才能够正常启动的、可以通过该数字就行调整脚本的      
启动顺序))

apache的内容:
#!/bin/bash
#Start httpd service
/server/apache/bin/apachectl start

至此 apache服务就可以在运行级别3下 随机自动启动了。(可以结合chkconfig
对启动服务进行相应的调整)。
由于相关变量定义不同, 所以以下启动顺序仅供参考
在Redhat Redflag centos fc linux系统里面脚本的启动

先后:
第一步:通过/boot/vm进行启动 vmlinuz
第二步:init /etc/inittab
第三步:启动相应的脚本,并且打开终端
rc.sysinit
rc.d(里面的脚本)
rc.local
第四步:启动login登录界面 login
第五步:在用户登录的时候执行sh脚本的顺序:每次登录的时候都会完全执行的
/etc/profile.d/file
/etc/profile
/etc/bashrc
/root/.bashrc
/root/.bash_profile

相关文章