You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

11 KiB

systemctl

说明

systemctl命令 是系统服务管理器指令,它实际上将 service 和 chkconfig 这两个命令组合到一起

选项

   --system         Connect to system manager
-H --host=[USER@]HOST
                    Operate on remote host
-M --machine=CONTAINER
                    Operate on local container
-t --type=TYPE      List units of a particular type
   --state=STATE    List units with particular LOAD or SUB or ACTIVE state
-p --property=NAME  Show only properties by this name
-a --all            Show all loaded units/properties, including dead/empty
                    ones. To list all units installed on the system, use
                    the 'list-unit-files' command instead.
-l --full           Don't ellipsize unit names on output
-r --recursive      Show unit list of host and local containers
   --reverse        Show reverse dependencies with 'list-dependencies'
   --job-mode=MODE  Specify how to deal with already queued jobs, when
                    queueing a new job
   --show-types     When showing sockets, explicitly show their type
-i --ignore-inhibitors
                    When shutting down or sleeping, ignore inhibitors
   --kill-who=WHO   Who to send signal to
-s --signal=SIGNAL  Which signal to send
   --now            Start or stop unit in addition to enabling or disabling it
-q --quiet          Suppress output
   --no-block       Do not wait until operation finished
   --no-wall        Don't send wall message before halt/power-off/reboot
   --no-reload      Don't reload daemon after en-/dis-abling unit files
   --no-legend      Do not print a legend (column headers and hints)
   --no-pager       Do not pipe output into a pager
   --no-ask-password
                    Do not ask for system passwords
   --global         Enable/disable unit files globally
   --runtime        Enable unit files only temporarily until next reboot
-f --force          When enabling unit files, override existing symlinks
                    When shutting down, execute action immediately
   --preset-mode=   Apply only enable, only disable, or all presets
   --root=PATH      Enable unit files in the specified root directory
-n --lines=INTEGER  Number of journal entries to show
-o --output=STRING  Change journal output mode (short, short-iso,
                            short-precise, short-monotonic, verbose,
                            export, json, json-pretty, json-sse, cat)
   --plain          Print unit dependencies as a list instead of a tree

Unit Commands:
  list-units [PATTERN...]         List loaded units
  list-sockets [PATTERN...]       List loaded sockets ordered by address
  list-timers [PATTERN...]        List loaded timers ordered by next elapse
  start NAME...                   Start (activate) one or more units
  stop NAME...                    Stop (deactivate) one or more units
  reload NAME...                  Reload one or more units
  restart NAME...                 Start or restart one or more units
  try-restart NAME...             Restart one or more units if active
  reload-or-restart NAME...       Reload one or more units if possible,
                                  otherwise start or restart
  reload-or-try-restart NAME...   Reload one or more units if possible,
                                  otherwise restart if active
  isolate NAME                    Start one unit and stop all others
  kill NAME...                    Send signal to processes of a unit
  is-active PATTERN...            Check whether units are active
  is-failed PATTERN...            Check whether units are failed
  status [PATTERN...|PID...]      Show runtime status of one or more units
  show [PATTERN...|JOB...]        Show properties of one or more
                                  units/jobs or the manager
  cat PATTERN...                  Show files and drop-ins of one or more units
  set-property NAME ASSIGNMENT... Sets one or more properties of a unit
  help PATTERN...|PID...          Show manual for one or more units
  reset-failed [PATTERN...]       Reset failed state for all, one, or more
                                  units
  list-dependencies [NAME]        Recursively show units which are required
                                  or wanted by this unit or by which this
                                  unit is required or wanted

Unit File Commands:
  list-unit-files [PATTERN...]    List installed unit files
  enable NAME...                  Enable one or more unit files
  disable NAME...                 Disable one or more unit files
  reenable NAME...                Reenable one or more unit files
  preset NAME...                  Enable/disable one or more unit files
                                  based on preset configuration
  preset-all                      Enable/disable all unit files based on
                                  preset configuration
  is-enabled NAME...              Check whether unit files are enabled
  mask NAME...                    Mask one or more units
  unmask NAME...                  Unmask one or more units
  link PATH...                    Link one or more units files into
                                  the search path
  add-wants TARGET NAME...        Add 'Wants' dependency for the target
                                  on specified one or more units
  add-requires TARGET NAME...     Add 'Requires' dependency for the target
                                  on specified one or more units
  edit NAME...                    Edit one or more unit files
  get-default                     Get the name of the default target
  set-default NAME                Set the default target

Machine Commands:
  list-machines [PATTERN...]      List local containers and host

Job Commands:
  list-jobs [PATTERN...]          List jobs
  cancel [JOB...]                 Cancel all, one, or more jobs

Snapshot Commands:
  snapshot [NAME]                 Create a snapshot
  delete NAME...                  Remove one or more snapshots

Environment Commands:
  show-environment                Dump environment
  set-environment NAME=VALUE...   Set one or more environment variables
  unset-environment NAME...       Unset one or more environment variables
  import-environment [NAME...]    Import all or some environment variables

Manager Lifecycle Commands:
  daemon-reload                   Reload systemd manager configuration
  daemon-reexec                   Reexecute systemd manager

System Commands:
  is-system-running               Check whether system is fully running
  default                         Enter system default mode
  rescue                          Enter system rescue mode
  emergency                       Enter system emergency mode
  halt                            Shut down and halt the system
  poweroff                        Shut down and power-off the system
  reboot [ARG]                    Shut down and reboot the system
  kexec                           Shut down and reboot the system with kexec
  exit                            Request user instance exit
  switch-root ROOT [INIT]         Change to a different root file system
  suspend                         Suspend the system
  hibernate                       Hibernate the system
  hybrid-sleep                    Hibernate and suspend the system

实例

systemctl reboot        # 重启系统
systemctl poweroff      # 关闭系统,切断电源
systemctl halt          # 关机
systemctl suspend       # 暂停系统
systemctl hibernate     # 休眠系统
systemctl hybrid-sleep  # 让系统进入交互式休眠状态
systemctl rescue        # 启动进入救援状态(单用户状态)
systemctl list-units --type=service    # 查看所有服务单元

systemd-analyze blame # 显示瀑布状的启动过程流
systemd-analyze critical-chain atd.service  # 显示指定服务的启动流

localectl set-locale LANG=en_GB.utf8 localectl set-keymap en_GB # 设置本地化参数

timedatectl list-timezones # 显示所有可用的时区

# 设置当前时区
timedatectl set-timezone America/New_York
timedatectl set-time YYYY-MM-DD
timedatectl set-time HH:MM:SS

loginctl list-sessions # 列出当前session
loginctl list-users # 列出当前登录用户
loginctl show-user ruanyf # 列出显示指定用户的信息

systemctl is-active application.service # 显示某个 Unit 是否正在运行
systemctl is-failed application.service # 显示某个 Unit 是否处于启动失败状态
systemctl is-enabled application.service # 显示某个 Unit 服务是否建立了启动链接

systemctl daemon-reload # 重载所有修改过的配置文件
systemctl show httpd.service # 显示某个 Unit 的所有底层参数
systemctl set-property httpd.service CPUShares=500 # 设置某个 Unit 的指定属性
systemctl list-dependencies nginx.service # 列出一个unit的所有依赖
systemctl list-unit-files # 列出所有systemctl配置文件
systemctl list-unit-files --type=service # 列出指定类型的配置文件
systemctl list-unit-files --type=target # 查看当前系统的所有 Target
systemctl list-dependencies multi-user.target # 查看一个 Target 包含的所有 Unit
systemctl get-default # 查看启动时的默认 Target
systemctl set-default multi-user.target # 设置启动时的默认 Target

journalctl -k # 查看内核日志(不显示应用日志)
journalctl -b -0 # 查看系统本次启动的日志
journalctl -b -1 # 查看上一次启动的日志(需更改设置)

# 查看指定时间的日志
journalctl --since="2012-10-30 18:17:16"
journalctl --since "20 min ago"
journalctl --since yesterday
journalctl --since "2015-01-10" --until "2015-01-11 03:00" journalctl --since 09:00 --until "1 hour ago"
journalctl -n 20 # 显示尾部指定行数的日志
journalctl -f # 实时滚动显示最新日志
journalctl _PID=1 # 查看指定进程的日志
journalctl _UID=33 --since today # 查看指定用户的日志
journalctl -u nginx.service --since today # 查看某个 Unit 的日志
journalctl -u nginx.service -f # 实时滚动显示某个 Unit 的最新日志
journalctl -u nginx.service -u php-fpm.service --since today # 合并显示多个 Unit 的日志

journalctl -p err -b
# 查看指定优先级及其以上级别的日志共有8级
0: emerg
1: alert
2: crit
3: err
4: warning
5: notice
6: info
7: debug

journalctl --no-pager # 日志默认分页输出,--no-pager 改为正常的标准输出
journalctl -b -u nginx.service -o json # 以 JSON 格式(单行)输出
journalctl -b -u nginx.serviceqq -o json-pretty # 以 JSON 格式(多行)输出,可读性更好
journalctl --disk-usage # 显示日志占据的硬盘空间
journalctl --vacuum-size=1G # 指定日志文件占据的最大空间
journalctl --vacuum-time=1years # 指定日志文件保存多久