常用命令
使某服務自動啟動
systemctl enable httpd.service
使某服務不自動啟動
systemctl disable httpd.service
檢查服務狀態
systemctl status httpd.service (服務詳細信息) systemctl is-active httpd.service (僅顯示是否 Active)
顯示所有已啟動的服務
systemctl list-units --type=service
啟動某服務
systemctl start httpd.service
停止某服務
systemctl stop httpd.service
重啟某服務
systemctl restart httpd.service
開機服務管理
開機啟動 unit
systemctl enable test.service 增加由/lib/systemd/system/到/etc/systemd/system/multi-user.target.wants/下的軟鏈接 ln -s '/usr/lib/systemd/system/postfix.service' '/etc/systemd/system/multi-user.target.wants/test.service'
開機不啟動 unit
systemctl disable test.service
刪除/etc/systemd/system/multi-user.target.wants下的軟鏈接
查看服務開機是否啟動
systemctl is-enabled test.service #查詢服務是否開機啟動
查看開機自啟動程序
ls /etc/systemd/system/multi-user.target.wants/
顯示啟動失敗的單元
systemctl --failed
查看 systemd 管理的所有單元
systemctl list-unit-files
日志管理
Systemd 統一管理所有 Unit 的啟動日志。帶來的好處就是,可以只用journalctl一個命令,查看所有日志(內核日志和應用日志)。日志的配置文件是/etc/systemd/journald.conf。
journalctl功能強大,用法非常多。
# 查看所有日志(默認情況下 ,只保存本次啟動的日志) $ sudo journalctl # 查看內核日志(不顯示應用日志) $ sudo journalctl -k # 查看系統本次啟動的日志 $ sudo journalctl -b $ sudo journalctl -b -0 # 查看上一次啟動的日志(需更改設置) $ sudo journalctl -b -1 # 查看指定時間的日志 $ sudo journalctl --since="2012-10-30 18:17:16" $ sudo journalctl --since "20 min ago" $ sudo journalctl --since yesterday $ sudo journalctl --since "2015-01-10" --until "2015-01-11 03:00" $ sudo journalctl --since 09:00 --until "1 hour ago" # 顯示尾部的最新10行日志 $ sudo journalctl -n # 顯示尾部指定行數的日志 $ sudo journalctl -n 20 # 實時滾動顯示最新日志 $ sudo journalctl -f # 查看指定服務的日志 $ sudo journalctl /usr/lib/systemd/systemd # 查看指定進程的日志 $ sudo journalctl _PID=1 # 查看某個路徑的腳本的日志 $ sudo journalctl /usr/bin/bash # 查看指定用戶的日志 $ sudo journalctl _UID=33 --since today # 查看某個 Unit 的日志 $ sudo journalctl -u nginx.service $ sudo journalctl -u nginx.service --since today # 實時滾動顯示某個 Unit 的最新日志 $ sudo journalctl -u nginx.service -f # 合並顯示多個 Unit 的日志 $ journalctl -u nginx.service -u php-fpm.service --since today # 查看指定優先級(及其以上級別)的日志,共有8級 # 0: emerg # 1: alert # 2: crit # 3: err # 4: warning # 5: notice # 6: info # 7: debug $ sudo journalctl -p err -b # 日志默認分頁輸出,--no-pager 改為正常的標准輸出 $ sudo journalctl --no-pager # 以 JSON 格式(單行)輸出 $ sudo journalctl -b -u nginx.service -o json # 以 JSON 格式(多行)輸出,可讀性更好 $ sudo journalctl -b -u nginx.serviceqq -o json-pretty # 顯示日志占據的硬盤空間 $ sudo journalctl --disk-usage # 指定日志文件占據的最大空間 $ sudo journalctl --vacuum-size=1G # 指定日志文件保存多久 $ sudo journalctl --vacuum-time=1years
Reference:
https://blog.csdn.net/qq562029186/article/details/67639676 Linux開機啟動管理---systemd使用
