TINYPROXY——PID文件读取错误
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