Linux服务管理

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控制启动级别的自启动

你可能感兴趣的:(Linux服务管理)