linux 添加开机启动项
三种方法:
一、/etc/rc.local
编辑文件 /etc/rc.local
[root@qiye ossftp]# vim /etc/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.touch /var/lock/subsys/local
/etc/init.d/mysqld start #mysql开机启动
/etc/init.d/nginx start #nginx开机启动
/etc/init.d/php-fpm start #php-fpm开机启动
/etc/init.d/memcached start #memcache开机启动
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.
touch /var/lock/subsys/local
/usr/local/phpstudy/system/phpstudyctl -start
./usr/local/ossftp/start.sh > /usr/local/ossftp/logs/ossftp.log 2>&1 &
#在文件末尾(exit 0之前)加上你开机需要启动的程序或执行的命令即可(执行的程序需要写绝对路径,添加到系统环境变量的除外),如:/usr/local/thttpd/sbin/thttpd -C /usr/local/thttpd/etc/thttpd.conf
二、shell脚本
系统启动后会自动执行 /etc/profile.d/ 目录下的所有shell脚本。写一个shell脚本放到此目录即可。
三、chkconfig命令
chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息,也就是用于检查、设置系统的各种服务。谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接。
使用chkconfig命令设置将启动文件cp到 /etc/init.d/或者/etc/rc.d/init.d/(前者是后者的软连接)下vim 启动文件,文件前面务必添加如下三行代码,否侧会提示chkconfig不支持#!/bin/sh 告诉系统使用的shell,所以的shell脚本都是这样。
使用语法:
chkconfig [--add][--del][--list][系统服务] 或 chkconfig [--level <等级代号>][系统服务][on/off/reset]
参数用法:
–add 增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据。
–del 删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据。
–level<等级代号> 指定读系统服务要在哪一个执行等级中开启或关毕。
等级0表示:表示关机等级1表示:单用户模式
等级2表示:无网络连接的多用户命令行模式
等级3表示:有网络连接的多用户命令行模式
等级4表示:不可用
等级5表示:带图形界面的多用户模式
等级6表示:重新启动
chkconfig –list [name]:显示所有运行级系统服务的运行状态信息(on或off)。如果指定了name,那么只显示指定的服务在不同运行级的状态。
chkconfig –add name:增加一项新的服务。chkconfig确保每个运行级有一项启动(S)或者杀死(K)入口。如有缺少,则会从缺省的init脚本自动建立。
chkconfig –del name:删除服务,并把相关符号连接从/etc/rc[0-6].d删除。
chkconfig [--level levels] name:设置某一服务在指定的运行级是被启动,停止还是重置。
运行级文件:
每 个被chkconfig管理的服务需要在对应的init.d下的脚本加上两行或者更多行的注释。第一行告诉chkconfig缺省启动的运行级以及启动和 停止的优先级。如果某服务缺省不在任何运行级启动,那么使用 – 代替运行级。第二行对服务进行描述,可以用\ 跨行注释。
例如,random.init包含三行:# chkconfig: 2345 20 80
# description: Saves and restores system entropy pool for \
# higher quality random number generation
#分别代表运行级别,启动优先权,关闭优先权,此行代码必须
#chkconfig: 35 20 80
#description: http server(自己随便发挥)//两行都注释掉!!!,此行代码必须chkconfig --add 脚本文件名 操作后就已经添加了
如何增加一个服务:
1.服务脚本必须存放在/etc/ini.d/目录下;
2.chkconfig –add servicename在chkconfig工具服务列表中增加此服务,此时服务会被在/etc/rc.d/rcN.d中赋予K/S入口了;3.chkconfig –level 35 mysqld on修改服务的默认启动等级。