ls /usr/lib/systemd/systemd # 主程序。进程号为1。
ls /usr/lib/systemd/system # 查看系统服务
systemctl list-unit-files # 查询所有单元文件
systemctl list-unit-files --type=service # 列出所有服务类型的单元文件
systemctl enable httpd.service # 设置开机自启动,会在 /etc/systemd/system/multi-user.target.wants/ 目录下新建一个 /usr/lib/systemd/system/httpd.service 文件的链接
systemctl disable httpd.service # 关闭开机自启动
systemctl start httpd.service # 开启 httpd 服务
systemctl stop httpd.service # 关闭 httpd 服务
systemctl restart httpd.service # 重启服务
systemctl reload httpd.service # 重载服务
systemctl status httpd.service # 查询服务的当前状态
systemctl is-active http.service # 查询 httpd 服务是否是 active 状态
systemctl list-units --type=service # 查询所有已启动的服务
journalctl # 查看所有日志
journalctl -b # 查看本次启动以后的信息
journalctl -b -1 # 查看上次启动以后的信息
journalctl -b -2 # 查看上两次启动以后的信息
journalctl -b --since="2020-01-01 01:01" # 查看 2020-01-01 01:01 以后的日志
journalctl -u gdm.service # 根据单元查看日志信息
journalctl _PID=2 # 根据进程号查看日志信息
journalctl /usr/bin/top # 根据可执行程序查看日志信息
journalctl -p 1 # 查看指定优先级的日志信息
journalctl -f # 持续更新显示日志信息
/usr/lib/systemd/system/*.service 文件的结构:[Unit]、[Service]和[Install]
Unit 描述信息 Description= After= # 在某个程序之前启动 Before= # 在某个程序之后启动 |
Service 启动信息 Type= # 启动类型。 # Type=oneshot :只执行一次,随后立即退出。RemainAfterExit=yes : 在服务进程退出之后仍然认为服务处于激活状态。 # Type=notify :与 Type=simple 相同,但服务会在就绪后向 systemd 发送一个信号。 # Type=dbus :若以此方式启动,当指定的 BusName 出现在 DBus 系统总线上时,systemd 认为服务就绪。 # Type=idle :systemd 会等待所有任务处理完成后,才执行 idle 类型的单元。其他行为与 Type=simple 类似。 # Type=forking :systemd 认为当该服务进程fork,且父进程退出后服务启动成功。对于常规的守护进程(daemon),使用此类型启动即可。使用此启动类型应同时指定 PIDFile=,以便 systemd 能够跟踪服务的主进程。 # Type=simple :(默认值) systemd 认为该服务将立即启动。服务进程不会 fork 。如果服务要启动其他服务,不要使用此类型启动,除非该服务是socket 激活型。
RemainAfterExit=yes #通知 systemctl 结束 User= Group= Restart= # Restart=always 的时候 systemctl 会不断重启这个脚本。 # Restart=no 的时候不会重启。 ExecStart= # 后面跟程序的绝对路径,如果有启动参数,后面加上,如果程序没有参数不需要添加 ExecStop 这条语句 ExecStop= # 后面跟程序的绝对路径,如果有停止参数,后面加上 PIDFile= # 加上程序PID文件绝对路径 |
install 安装信息 WantedBy= # WantedBy=multi-user.target(单元被允许运行需要的弱依赖性单元,Wantby 从 Want 列表获得依赖信息。) |