zoukankan      html  css  js  c++  java
  • Linux 服务控制与运行级别

    CentOS-Logo

    如何控制服务的运行状态?如何切换不同的运行级别?


    服务控制

    ntsysv

    • 仿图形交互界面,集中配置各种服务启动状态

    --level 35:同时对指定运行级别中的服务进行管理,不加仅管理当前运行级别中的服务。

    [root@localhost ~]# ntsysv --level 35
    

    systemctl

    • systemctl {选项} name.servive

    start:启动
    stop:停止

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

    restart:重启,先停止,再启动
    reload:重新加载配置文件,不会完全停止和启动服务

    [root@localhost ~]# systemctl restart httpd.service
    [root@localhost ~]# systemctl reload httpd.service
    

    status:状态
    is-active:是否启动成功
    is-failed:是否启动失败

    [root@localhost ~]# systemctl status httpd.service
    ● httpd.service - The Apache HTTP Server
       Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
       Active: active (running) since Tue 2019-08-27 17:31:39 CST; 40s ago
         Docs: man:httpd(8)
               man:apachectl(8)
      Process: 8833 ExecReload=/usr/sbin/httpd $OPTIONS -k graceful (code=exited, status=0/SUCCESS)
     Main PID: 8821 (httpd)
       Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"
       CGroup: /system.slice/httpd.service
               ├─8821 /usr/sbin/httpd -DFOREGROUND
               ├─8835 /usr/sbin/httpd -DFOREGROUND
               ├─8836 /usr/sbin/httpd -DFOREGROUND
               ├─8837 /usr/sbin/httpd -DFOREGROUND
               ├─8838 /usr/sbin/httpd -DFOREGROUND
               └─8839 /usr/sbin/httpd -DFOREGROUND
    
    Aug 27 17:31:39 localhost.localdomain systemd[1]: Starting The Apache HTTP Server...
    Aug 27 17:31:39 localhost.localdomain httpd[8821]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.l...s message
    Aug 27 17:31:39 localhost.localdomain systemd[1]: Started The Apache HTTP Server.
    Aug 27 17:31:45 localhost.localdomain httpd[8833]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.l...s message
    Aug 27 17:31:45 localhost.localdomain systemd[1]: Reloaded The Apache HTTP Server.
    Hint: Some lines were ellipsized, use -l to show in full.
    
    [root@localhost ~]# systemctl is-active httpd.service
    active
    [root@localhost ~]# systemctl is-failed httpd.service
    active
    

    enable:开机自启
    disable:关闭开机自启
    is-enabled:是否开机自启

    [root@localhost ~]# systemctl enable httpd.service
    Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
    [root@localhost ~]# systemctl disable httpd.service
    Removed symlink /etc/systemd/system/multi-user.target.wants/httpd.service.
    [root@localhost ~]# systemctl is-enabled httpd.service
    disabled
    

    list-dependencies:查看依赖关系

    [root@localhost ~]# systemctl list-dependencies httpd.service
    httpd.service
    ● ├─-.mount
    ● ├─system.slice
    ● └─basic.target
    ●   ├─microcode.service
    ●   ├─rhel-autorelabel-mark.service
    ●   ├─rhel-autorelabel.service
    ●   ├─rhel-configure.service
    ●   ├─rhel-dmesg.service
    ●   ├─rhel-loadmodules.service
    ●   ├─selinux-policy-migrate-local-changes@targeted.service
    ●   ├─paths.target
    ●   ├─slices.target
    ●   │ ├─-.slice
    ●   │ └─system.slice
    ●   ├─sockets.target
    ●   │ ├─dbus.socket
    ●   │ ├─dm-event.socket
    ●   │ ├─systemd-initctl.socket
    ●   │ ├─systemd-journald.socket
    ●   │ ├─systemd-shutdownd.socket
    ●   │ ├─systemd-udevd-control.socket
    ●   │ └─systemd-udevd-kernel.socket
    ●   ├─sysinit.target
    ●   │ ├─dev-hugepages.mount
    ●   │ ├─dev-mqueue.mount
    ●   │ ├─kmod-static-nodes.service
    ●   │ ├─lvm2-lvmetad.socket
    ●   │ ├─lvm2-lvmpolld.socket
    ●   │ ├─lvm2-monitor.service
    ●   │ ├─plymouth-read-write.service
    ●   │ ├─plymouth-start.service
    ●   │ ├─proc-sys-fs-binfmt_misc.automount
    ●   │ ├─sys-fs-fuse-connections.mount
    ●   │ ├─sys-kernel-config.mount
    ●   │ ├─sys-kernel-debug.mount
    ●   │ ├─systemd-ask-password-console.path
    ●   │ ├─systemd-binfmt.service
    ●   │ ├─systemd-firstboot.service
    ●   │ ├─systemd-hwdb-update.service
    ●   │ ├─systemd-journal-catalog-update.service
    ●   │ ├─systemd-journal-flush.service
    ●   │ ├─systemd-journald.service
    ●   │ ├─systemd-machine-id-commit.service
    ●   │ ├─systemd-modules-load.service
    ●   │ ├─systemd-random-seed.service
    ●   │ ├─systemd-sysctl.service
    ●   │ ├─systemd-tmpfiles-setup-dev.service
    ●   │ ├─systemd-tmpfiles-setup.service
    ●   │ ├─systemd-udev-trigger.service
    ●   │ ├─systemd-udevd.service
    ●   │ ├─systemd-update-done.service
    ●   │ ├─systemd-update-utmp.service
    ●   │ ├─systemd-vconsole-setup.service
    ●   │ ├─cryptsetup.target
    ●   │ ├─local-fs.target
    ●   │ │ ├─-.mount
    ●   │ │ ├─boot.mount
    ●   │ │ ├─rhel-import-state.service
    ●   │ │ ├─rhel-readonly.service
    ●   │ │ └─systemd-remount-fs.service
    ●   │ └─swap.target
    ●   │   └─dev-mapper-centosx2dswap.swap
    ●   └─timers.target
    ●     └─systemd-tmpfiles-clean.timer
    

    mask:屏蔽服务
    unmak:取消屏蔽

    • 主要使用于相互冲突的服务,屏蔽后,不会被其他的systemd单元启动,也无法被手动启动。例如iptablesfirewalld就是互相冲突的。
    [root@localhost ~]# systemctl mask firewalld.service
    Created symlink from /etc/systemd/system/firewalld.service to /dev/null.
    [root@localhost ~]# systemctl unmask firewalld.service
    Removed symlink /etc/systemd/system/firewalld.service.
    

    运行级别

    runlevel

    • 显示系统的运行级别
    [root@localhost ~]# runlevel
    N 5
    

    切换多用户模式

    两种方法:

    [root@localhost ~]# init 3
    
    [root@localhost ~]# systemctl isolate multi-user.target
    

    切换图形化界面

    两种方法:

    [root@localhost ~]# init 5
    
    [root@localhost ~]# systemctl isolate graphical.target
    

    开机默认 target

    1.查看默认启动target

    [root@localhost ~]# systemctl get-default
    graphical.target
    

    2.切换默认启动target,两种方法:

    [root@localhost ~]# systemctl set-default multi-user.target
    Removed symlink /etc/systemd/system/default.target.
    Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/multi-user.target.
    
    [root@localhost ~]# ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
    

    3.查看默认启动target

    [root@localhost ~]# systemctl get-default
    multi-user.target
    
  • 相关阅读:
    IPC框架分析 Binder,Service,Service manager
    Android语音系列:编译Speex框架
    Android核心分析(21)Android应用框架之Android Application
    支付宝 移动支付
    对象、视频、音频的传输RTMP协议研究
    ffmpeg 移植篇笔记
    iPhone UI 设计篇(一)
    Service深入分析
    CSS注意事项
    关于文本断行的样式
  • 原文地址:https://www.cnblogs.com/llife/p/11419983.html
Copyright © 2011-2022 走看看