1、systemd查看日志文件有隱藏該如何處理?
systemd統(tǒng)一管理所有Unit的啟動(dòng)日志,包含內(nèi)核日志和應(yīng)用日志。在默認(rèn)情況下,systemd日志保存于/run/log/journal中,系統(tǒng)重啟后會(huì)清除,這里面的日志文件是二進(jìn)制形式保存的,不能直接用less等文本文件查看的方式查看內(nèi)容。
可以使用下面這個(gè)命令來(lái)查看日志內(nèi)容,由于一行可以顯示很多內(nèi)容,屏幕的列數(shù)可能無(wú)法顯示完整,可以使用右方向鍵查看右邊的內(nèi)容。
$ journalctl
日志文件還有更詳細(xì)的信息,使用下面這個(gè)參數(shù) 顯示隱藏字段
journalctl? -o verbose
-o?或 --output=STRING?來(lái)改變journal命令輸出的模式。
2、自己動(dòng)手寫一個(gè)systemd的配置文件,?讓nginx服務(wù)可以開(kāi)機(jī)啟動(dòng)
[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ū)別
通過(guò)命令man 7 signal來(lái)查看每個(gè)信號(hào)的含義。
? ? ? ? SIGHUP 控制終端關(guān)閉或控制進(jìn)程退出時(shí),終端會(huì)話內(nèi)的子進(jìn)程與控制進(jìn)程的子進(jìn)程都會(huì)收到這樣的信號(hào),系統(tǒng)對(duì)SIGHUP信號(hào)的默認(rèn)處理是終止收到該信號(hào)的進(jìn)程。所以若程序中沒(méi)有捕捉該信號(hào),當(dāng)收到該信號(hào)時(shí),進(jìn)程就會(huì)退出。
? ? ? ? SIGQUIT? 和SIGINT類似, 但由QUIT字符(通常是Ctrl-\? )來(lái)控制. 進(jìn)程在因收到SIGQUIT退出時(shí)會(huì)產(chǎn)生core文件, 類似于一個(gè)程序錯(cuò)誤信號(hào)。
? ? ? ? SIGTERM程序結(jié)束(terminate)信號(hào), 與SIGKILL不同的是該信號(hào)可以被阻塞和處理。通常用來(lái)要求程序自己正常退出,shell命令kill缺省產(chǎn)生這個(gè)信號(hào)。如果進(jìn)程終止不了,我們才會(huì)嘗試SIGKILL,就是我們有時(shí)使用kill -9 pid來(lái)強(qiáng)行殺死進(jìn)程。
? ? ? ? SIGINTERRUPT? 程序終止(interrupt)信號(hào), 在用戶鍵入INTR字符(通常是Ctrl-C)時(shí)發(fā)出,用于通知前臺(tái)進(jìn)程組終止進(jìn)程。
4、用awk查看tcp連接處于TIMEOUT的連接個(gè)數(shù)
[root@localhost system]# netstat -an |awk '/^tcp\>/ {if($NF=="TIMEOUT")sum++} END{print sum}'