CentOS 7系统配置上的变化解析(2)

二、Services 

[root@localhost ~]# chkconfig

Note: This output shows SysV services only and does not include native
      systemd services. SysV configuration data might be overridden by native
      systemd configuration.

If you want to list systemd services use 'systemctl list-unit-files'.
      To see services enabled on particular target use
      'systemctl list-dependencies [target]'.

iprdump            0:off    1:off    2:on    3:on    4:on    5:on    6:off
iprinit            0:off    1:off    2:on    3:on    4:on    5:on    6:off
iprupdate          0:off    1:off    2:on    3:on    4:on    5:on    6:off
livesys            0:off    1:off    2:off    3:on    4:on    5:on    6:off
livesys-late      0:off    1:off    2:off    3:on    4:on    5:on    6:off
netconsole        0:off    1:off    2:off    3:off    4:off    5:off    6:off
network            0:off    1:off    2:off    3:off    4:off    5:off    6:off
rhnsd              0:off    1:off    2:on    3:on    4:on    5:on    6:off
vboxadd            0:off    1:off    2:on    3:on    4:on    5:on    6:off
vboxadd-service    0:off    1:off    2:on    3:on    4:on    5:on    6:off
vboxadd-x11        0:off    1:off    2:off    3:on    4:off    5:on    6:off

SysV已经快退居二线了,想配置服务得用systemctl,先看看默认启动的服务吧。(如果不用grep过滤一下,输出结果有260多行)

[root@localhost ~]# systemctl list-unit-files|grep enabled
tmp.mount                                  enabled
accounts-daemon.service                    enabled
atd.service                                enabled
auditd.service                              enabled
avahi-daemon.service                        enabled
bluetooth.service                          enabled
chronyd.service                            enabled
crond.service                              enabled
dbus-org.bluez.service                      enabled
dbus-org.Fedoraproject.FirewallD1.service  enabled
dbus-org.freedesktop.Avahi.service          enabled
dbus-org.freedesktop.NetworkManager.service enabled
dbus-org.freedesktop.nm-dispatcher.service  enabled
display-manager.service                    enabled
dmraid-activation.service                  enabled
firewalld.service                          enabled
gdm.service                                enabled
getty@.service                              enabled
irqbalance.service                          enabled
iscsi.service                              enabled
kdump.service                              enabled
libstoragemgmt.service                      enabled
lvm2-monitor.service                        enabled
mdmonitor.service                          enabled
microcode.service                          enabled
multipathd.service                          enabled
NetworkManager-dispatcher.service          enabled
NetworkManager.service                      enabled
packagekit-offline-update.service          enabled
postfix.service                            enabled
rngd.service                                enabled
rsyslog.service                            enabled
rtkit-daemon.service                        enabled
smartd.service                              enabled
spice-vdagentd.service                      enabled
sysstat.service                            enabled
systemd-readahead-collect.service          enabled
systemd-readahead-drop.service              enabled
systemd-readahead-replay.service            enabled
tuned.service                              enabled
avahi-daemon.socket                        enabled
dm-event.socket                            enabled
iscsid.socket                              enabled
iscsiuio.socket                            enabled
lvm2-lvmetad.socket                        enabled
default.target                              enabled
multi-user.target                          enabled
remote-fs.target                            enabled

默认居然没有启动sshd,晕!看看监听端口:

[root@localhost ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address          Foreign Address        State      PID/Program name   
tcp        0      0 127.0.0.1:25            0.0.0.0:*              LISTEN      2090/master

果然没有22,试试老办法:

[root@localhost ~]# chkconfig sshd on
Note: Forwarding request to 'systemctl enable sshd.service'.
ln -s '/usr/lib/systemd/system/sshd.service' '/etc/systemd/system/multi-user.target.wants/sshd.service'

能用,但是指令被转发到 systemctl enable sshd.service ,以后控制服务就用这个指令了。试试:

禁用sshd:

[root@localhost ~]# systemctl disable sshd.service
rm '/etc/systemd/system/multi-user.target.wants/sshd.service'

启用sshd:

[root@localhost ~]# systemctl enable sshd.service
ln -s '/usr/lib/systemd/system/sshd.service' '/etc/systemd/system/multi-user.target.wants/sshd.service'

看看:

[root@localhost ~]# systemctl list-unit-files|grep sshd.service
anaconda-sshd.service                      static 
sshd.service                                enabled

[root@localhost ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address          Foreign Address        State      PID/Program name   
tcp        0      0 127.0.0.1:25            0.0.0.0:*              LISTEN      2090/master       
tcp        0      0 0.0.0.0:22              0.0.0.0:*              LISTEN      2758/sshd         
tcp6      0      0 :::22                  :::*                    LISTEN      2758/sshd

其实启用和禁用服务就是在当前“runlevel”的配置文件目录(/etc/systemd/system/multi-user.target.wants/)里,

建立/usr/lib/systemd/system 里面对应服务配置文件的软链接;禁用服务就是删除此软链接。
有兴趣就自己看看 /usr/lib/systemd/system 里的文件,语法跟旧版/etc/init.d/ 里的服务脚本完全不同,也不能再用 /etc/init.d/sshd restart 之类的指令启动服务器了。

先试试旧方法启动服务:

[root@localhost ~]# service sshd start
Redirecting to /bin/systemctl start  sshd.service

用新方法折腾一下:

[root@localhost ~]# systemctl start sshd.service
[root@localhost ~]# systemctl stop sshd.service
[root@localhost ~]# systemctl restart sshd.service
[root@localhost ~]#

如果没有错误,就不会输出任何信息,这个,,,,得习惯一下。 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/17456.html