Linux服务管理
Linux中服务主要包括rpm包安装服务管理和源码包安装服务管理
rpm会安装到服务编写者指定的目录中, 而源码包安装, 需要自己指定安装目录
查询系统中开启的服务
netstat -tlunp
- -t 列出tcp数据
- -u 列出udp数据
- -l 列出正在监听的网络服务(不包含已经连接的网络服务)
- -n 用端口号来显示服务, 而不是用服务号
- -p 列出该服务的进程号ID
- -a 所有服务, 包括程序连接的服务
查看系统自启动服务状态
chkconfig --list
查询系统已经开启的服务
netstat -tlunp
netstat -an
更改启动级别
chkconfig --level 2345 iptables on|off
rpm包默认安装服务启动方式(非xinetd), 如yum安装的apache,
- /etc/init.d/httpd restart|start
- service httpd restart|start
rpm包自启动控制
- 写入/etc/rc.local
- 加入/etc/init.d中, 使用chkconfig --level命令操作
源码包服务启动方式
- 直接输入绝对路径, 执行启动脚本, 如
`/usr/local/apache2/bin/apachectl start - 加入到/etc/init.d中, 就可以使用sevice命令管理
源码包服务自启动方式
- 写入/etc/rc.local
- 加入/etc/init.d中, 设置软链接, 编辑启动脚本, 加入某些特定命令, 执行chkconfig --add ..
service命令是查找/etc/init.d/目录中的启动脚本
系统在启动时, 会读取/etc/inittab文件
, 查看启动级别, 通过启动级别, 确定读取下面那个级别目录下的脚本
lrwxrwxrwx 1 root root 10 12月 28 22:28 rc0.d -> rc.d/rc0.d
lrwxrwxrwx 1 root root 10 12月 28 22:28 rc1.d -> rc.d/rc1.d
lrwxrwxrwx 1 root root 10 12月 28 22:28 rc2.d -> rc.d/rc2.d
lrwxrwxrwx 1 root root 10 12月 28 22:28 rc3.d -> rc.d/rc3.d
lrwxrwxrwx 1 root root 10 12月 28 22:28 rc4.d -> rc.d/rc4.d
lrwxrwxrwx 1 root root 10 12月 28 22:28 rc5.d -> rc.d/rc5.d
lrwxrwxrwx 1 root root 10 12月 28 22:28 rc6.d -> rc.d/rc6.d
如果inittab
文件中启动级别为3级别, 则默认会读取/etc/rc3.d(软链接, 指向/etc/rc.d/rc3.d/)
目录, 该目录如下
lrwxrwxrwx 1 root root 19 12月 28 22:31 K10saslauthd -> ../init.d/saslauthd
lrwxrwxrwx 1 root root 18 12月 28 22:31 K15svnserve -> ../init.d/svnserve
lrwxrwxrwx 1 root root 15 12月 28 22:31 S55httpd -> ../init.d/httpd
lrwxrwxrwx 1 root root 14 12月 28 22:31 S55sshd -> ../init.d/sshd
lrwxrwxrwx 1 root root 16 12月 28 22:31 S56xinetd -> ../init.d/xinetd
lrwxrwxrwx 1 root root 16 12月 28 22:31 S64mysqld -> ../init.d/mysqld
lrwxrwxrwx 1 root root 17 12月 28 22:31 S80postfix -> ../init.d/postfix
lrwxrwxrwx 1 root root 15 12月 28 22:31 S90crond -> ../init.d/crond
lrwxrwxrwx. 1 root root 11 10月 12 2016 S99local -> ../rc.local
...
rc3
目录下的启动脚本也是软链接, 如S55httpd
, 链接文件为/etc/init.d/httpd
,
而/etc/init.d
目录也是链接文件, 链接指向/etc/rc.d/init.d
目录, 所以s55httpd
文件最终链接文件位置为/etc/rc.d/init.d/httpd
S55httpd
中, s指start, 启动, 55是启动顺序, 启动目录中还有k10ss...
是指切换到该级别, 需要关闭的服务
/etc/rc.local
也是链接文件, 实际位置为/etc/rc.d/rc.local
可以将需要自启动的服务写入到该文件中, 系统启动最后一步, 会读取该文件, 执行该文件指定的启动服务
linux为使启动目录更简单, 将/etc/rc.d目录下的文件在/etc目录下都做了软链接, 如下
lrwxrwxrwx 1 root root 11 12月 28 22:28 init.d -> rc.d/init.d
lrwxrwxrwx. 1 root root 7 10月 12 2016 rc -> rc.d/rc
lrwxrwxrwx 1 root root 10 12月 28 22:28 rc0.d -> rc.d/rc0.d
lrwxrwxrwx 1 root root 10 12月 28 22:28 rc1.d -> rc.d/rc1.d
lrwxrwxrwx 1 root root 10 12月 28 22:28 rc2.d -> rc.d/rc2.d
lrwxrwxrwx 1 root root 10 12月 28 22:28 rc3.d -> rc.d/rc3.d
lrwxrwxrwx 1 root root 10 12月 28 22:28 rc4.d -> rc.d/rc4.d
lrwxrwxrwx 1 root root 10 12月 28 22:28 rc5.d -> rc.d/rc5.d
lrwxrwxrwx 1 root root 10 12月 28 22:28 rc6.d -> rc.d/rc6.d
lrwxrwxrwx. 1 root root 13 10月 12 2016 rc.local -> rc.d/rc.local
lrwxrwxrwx. 1 root root 15 10月 12 2016 rc.sysinit -> rc.d/rc.sysinit
etc/rc.d
目录如下
drwxr-xr-x. 2 root root 4096 5月 11 2016 init.d
-rwxr-xr-x. 1 root root 2617 11月 23 2013 rc
drwxr-xr-x. 2 root root 4096 5月 11 2016 rc0.d
drwxr-xr-x. 2 root root 4096 5月 11 2016 rc1.d
drwxr-xr-x. 2 root root 4096 12月 28 22:38 rc2.d
drwxr-xr-x. 2 root root 4096 12月 28 22:38 rc3.d
drwxr-xr-x. 2 root root 4096 12月 28 22:38 rc4.d
drwxr-xr-x. 2 root root 4096 12月 28 22:38 rc5.d
drwxr-xr-x. 2 root root 4096 5月 11 2016 rc6.d
-rwxr-xr-x. 1 root root 336 10月 20 2016 rc.local
-rwxr-xr-x. 1 root root 19688 11月 23 2013 rc.sysinit
如源码安装apache, 目录为/usr/local/apache2
, 想通过rpm服务管理方式管理, 可以执行
ln -s /usr/local/apache2/bin/apachectl /etc/rc.d/init.d/apache
这样就可以通过service命令启动, service apache start
如果也想使用chkconfig做自启动管理, 需要执行如下操作:
- `vi /etc/init.d/apache, 加入如下两句话
#chkconfig:35 86 76
//指定apache脚本可以被chkconfig管理, 格式为 运行级别 启动顺序 关闭顺序
#description:srouce package apache
- 执行
chkconfig --add apache
将apache加入到chkconfig管理命令中, 这就就可以通过chkconfig控制启动级别的自启动
网友评论