systemd 开机无法启动privoxy
https://www.cnblogs.com/liuxuzzz/p/5329536.html
此博客不在更新,我的博客新地址:www.liuquanhao.com
---------------------------------------------------------------------
系统环境:ubuntu15.10 64bit , privoxy 3.0.24
代理环境:http://www.cnblogs.com/liuxuzzz/p/5324749.html
1. 重现失败环境。
不知道是什么原因,privoxy无法开机启动。于是,我手动使用systemctl开启。
$ sudo systemctl start privoxy.service
结果失败,提示使用 systemctl status privoxy.service 和 journalctl -xe察看原因。
$ sudo systemctl status privoxy.serivce $ journalctl -xe
输出信息并没有什么,仅仅一个failed ......status = 1.
2.尝试手动运行privoxy.service中的命令。
$ cat /lib/systemd/system/privoxy.service
输出:
[Unit] Description=Privacy enhancing HTTP Proxy [Service] Environment=PIDFILE=/var/run/privoxy.pid Environment=OWNER=privoxy Environment=CONFIGFILE=/etc/privoxy/config Type=forking PIDFile=/var/run/privoxy.pid ExecStart=/usr/sbin/privoxy --pidfile $PIDFILE --user $OWNER $CONFIGFILE ExecStopPost=/bin/rm -f $PIDFILE SuccessExitStatus=15 [Install] WantedBy=multi-user.target
“ExecStart=”后面的就是会执行的命令,注意将$PIDFILE等变量换掉。
$ sudo /usr/sbin/privoxy --pidfile/var/run/privoxy.pid --user privoxy /var/run/privoxy.pid
发现并不能启动privoxy,查了下privoxy的帮助,加了下--no-daemon参数,就是不把privoxy作为后台daemon运行。
$ sudo /usr/sbin/privoxy --no-daemon --pidfile/var/run/privoxy.pid --user privoxy /var/run/privoxy.pid
结果成功了!
3.将正确的命令替换到privoxy.service中。
于是把--no-daemon添加到privoxy.service的“ExeStart=”里面。
$ sudo vim /lib/systemd/system/privoxy.service
将:
ExecStart=/usr/sbin/privoxy --pidfile $PIDFILE --user $OWNER $CONFIGFILE
换成:
ExecStart=/usr/sbin/privoxy --no-daemon --pidfile $PIDFILE --user $OWNER $CONFIGFILE
重新启动privoxy。
$ sudo systemctl daemon-reload $ sudo systemctl start privoxy.service
结果一直不退出,但是用netstat -lnpt查看,发现privoxy启动成功了。
$ netstat -lnpt | grep 8118 tcp 0 127.0.0.1:8118 0.0.0.0:* LISTEN
然后我想了一下,可能是systemd启动类型有问题,可是我改了下privoxy.service的启动类别。
$ sudo vim /lib/systemd/system/privoxy.service
将:
[Unit] Description=Privacy enhancing HTTP Proxy [Service] Environment=PIDFILE=/var/run/privoxy.pid Environment=OWNER=privoxy Environment=CONFIGFILE=/etc/privoxy/config Type=forking PIDFile=/var/run/privoxy.pid ExecStart=/usr/sbin/privoxy --no-daemon --pidfile $PIDFILE --user $OWNER $CONFIGFILE ExecStopPost=/bin/rm -f $PIDFILE SuccessExitStatus=15
改为:
[Unit] Description=Privacy enhancing HTTP Proxy [Service] Environment=PIDFILE=/var/run/privoxy.pid Environment=OWNER=privoxy Environment=CONFIGFILE=/etc/privoxy/config Type=simple PIDFile=/var/run/privoxy.pid ExecStart=/usr/sbin/privoxy --no-daemon --pidfile $PIDFILE --user $OWNER $CONFIGFILE ExecStopPost=/bin/rm -f $PIDFILE SuccessExitStatus=15
重新启动privoxy,结果成功启动privoxy,privoxy.service也成功退出。
$ sudo systemctl daemon-reload $ sudo systemctl start privoxy.service
4.最后重启系统,privoxy也成功开机启动。