• systemd 开机无法启动privoxy


    此博客不在更新,我的博客新地址: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也成功开机启动。

  • 相关阅读:
    自定义Python枚举
    解决Django跨域访问的问题
    BBS项目细节总结
    面向对象进阶
    面向对象
    三级菜单
    常用模块
    内置函数与匿名函数及递归
    迭代器和生成器
    函数
  • 原文地址:https://www.cnblogs.com/liuxuzzz/p/5329536.html
Copyright © 2020-2023  润新知