1睦尽、systemd查看日志文件有隱藏該如何處理刹缝?
systemd統(tǒng)一管理所有Unit的啟動日志,包含內(nèi)核日志和應用日志没咙。在默認情況下,systemd日志保存于/run/log/journal中千劈,系統(tǒng)重啟后會清除祭刚,這里面的日志文件是二進制形式保存的,不能直接用less等文本文件查看的方式查看內(nèi)容墙牌。
可以使用下面這個命令來查看日志內(nèi)容涡驮,由于一行可以顯示很多內(nèi)容,屏幕的列數(shù)可能無法顯示完整喜滨,可以使用右方向鍵查看右邊的內(nèi)容捉捅。
$ journalctl
日志文件還有更詳細的信息,使用下面這個參數(shù) 顯示隱藏字段
journalctl? -o verbose
-o?或 --output=STRING?來改變journal命令輸出的模式虽风。
2棒口、自己動手寫一個systemd的配置文件,?讓nginx服務可以開機啟動
[root@localhost ~]# cd /etc/systemd/system
? ? ? ? [root@localhost system]# vi nginx.service
? ? ? ? [Unit]
? ? ? ? Description=nginx - high performance web server
? ? ? ? Documentation=http://nginx.org/en/docs/
? ? ? ? After=network.target remote-fs.target nss-lookup.target
? ? ? ? [Service]
? ? ? ? Type=forking
? ? ? ? PIDFile=/usr/local/nginx/logs/nginx.pid
? ? ? ? ExecStartPre=/usr/local/nginx/sbin/nginx
? ? ? ? ExecStart=/usr/local/nginx/sbin/nginx
? ? ? ? ExecReload=/usr/local/nginx/sbin/nginx -s reload
? ? ? ? ExecStop=/usr/local/nginx/sbin/nginx -s stop
? ? ? ? PrivateTmp=true
? ? ? ? [Install]
? ? ? ? WantedBy=multi-user.target
3辜膝、SIGHUP无牵、SIGQUIT、SIGTERM厂抖、SIGINTERRUPT的區(qū)別
通過命令man 7 signal來查看每個信號的含義茎毁。
? ? ? ? SIGHUP 控制終端關(guān)閉或控制進程退出時,終端會話內(nèi)的子進程與控制進程的子進程都會收到這樣的信號忱辅,系統(tǒng)對SIGHUP信號的默認處理是終止收到該信號的進程七蜘。所以若程序中沒有捕捉該信號,當收到該信號時墙懂,進程就會退出橡卤。
? ? ? ? SIGQUIT? 和SIGINT類似, 但由QUIT字符(通常是Ctrl-\? )來控制. 進程在因收到SIGQUIT退出時會產(chǎn)生core文件, 類似于一個程序錯誤信號。
? ? ? ? SIGTERM程序結(jié)束(terminate)信號, 與SIGKILL不同的是該信號可以被阻塞和處理损搬。通常用來要求程序自己正常退出碧库,shell命令kill缺省產(chǎn)生這個信號柜与。如果進程終止不了,我們才會嘗試SIGKILL谈为,就是我們有時使用kill -9 pid來強行殺死進程旅挤。
? ? ? ? SIGINTERRUPT? 程序終止(interrupt)信號, 在用戶鍵入INTR字符(通常是Ctrl-C)時發(fā)出,用于通知前臺進程組終止進程伞鲫。
4粘茄、用awk查看tcp連接處于TIMEOUT的連接個數(shù)
[root@localhost system]# netstat -an |awk '/^tcp\>/ {if($NF=="TIMEOUT")sum++} END{print sum}'