tinyproxy——A light-weight HTTP proxy daemon
描述:tinyproxy服務重啟時報告PID文件無法打開錯誤,但服務啟動成功。
錯誤描述:tinyproxy.service: Can't open PID file /run/tinyproxy/tinyproxy.pid (yet?) after start: No such file or directory
注:本人測試重啟服務器后查看tinyproxy服務狀態時並不會報告此錯誤,僅在重啟tinyproxy服務時才會報錯。
分析:PIDFile=指定了一個用於存儲服務的PID的文件路徑,對於Type=設置為forking的服務,建議使用此選項。
系統管理器在服務啟動后會從這個文件中讀取服務主進程的PID,但是如果服務啟動后該文件還沒有寫完,則會報告錯誤該文件不可讀。
為了使系統管理器讀取時該文件已寫完,需在服務啟動后加入一段延時,這時需要用到ExecStartPost=命令來調用/bin/sleep,參數為0.1。ExecStartPost=指令只會在ExecStart=調用成功后運行。
命令調用順序為:調用ExecStart=命令->調用ExecStartPost=命令->調用PIDFile=命令。
方案:
1.打開文件/lib/systemd/system/tinyproxy.service並在[Service]選項下添加以下內容:
ExecStartPost=/bin/sleep 0.1
2.重新加載systemd程序的配置文件
systemctl daemon-reload
3.重啟tinyproxy服務
service tinyproxy restart
4.查看tinyproxy服務狀態
service tinyproxy status
注:系統服務命令的詳細解釋可參考文件systemd.service — Service unit configuration。
網址:https://www.freedesktop.org/software/systemd/man/systemd.service.html