您尚未登录。

#1 2019-05-23 16:50:53

azuki
会员
注册时间: 2018-11-28
帖子: 6

[已解决]使用 systemctl enable 无法开机启动 shadowsocks-libev

再次更新:
我又试了7个配置文件。似乎有点眉目了。
其中3个,server部分填的是ip,另外4个填的是域名。
结果是填ip的都启动了,而填域名的都没有。

-----

参考wiki上这里以守护进程形式运行客户端
输入命令 sudo systemctl enable shadowsocks-libev@config-xxx

输出:

Created symlink /etc/systemd/system/multi-user.target.wants/shadowsocks-libev@config-xxx.service → /usr/lib/systemd/system/shadowsocks-libev@.service.

然后查看上面输出提到的/etc/.../multi-user.target.wants/shadowsocks-libev@config-xxx.service文件。

[Unit]
Description=Shadowsocks-Libev Client Service
After=network-online.target

[Service]
Type=simple
User=nobody
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
ExecStart=/usr/bin/ss-local -c /etc/shadowsocks/%i.json

[Install]
WantedBy=multi-user.target

使用systemctl status命令输出如下:

shadowsocks-libev@config-xxx.service - Shadowsocks-Libev Client Service
   Loaded: loaded (/usr/lib/systemd/system/shadowsocks-libev@.service; enabled; vendor preset: disabled)

可以看到有enabled。

还试了 Pcap_DNSProxy 这个软件,systemctl enable 命令对 Pcap_DNSProxy 对它是有用的,开机会自启。
但是,ss-libev则并不会自启。不知道该如何查错?

update: 
忘了说了,`systemctl start`命令对ss-libev是有效的,我现在就是用的这个来启动。

最近编辑记录 azuki (2019-05-24 14:58:12)

离线

#2 2019-05-23 17:28:25

wxg4net
会员
注册时间: 2012-01-07
帖子: 274

Re: [已解决]使用 systemctl enable 无法开机启动 shadowsocks-libev

是不是设置了network-online.target依赖后 如果是systemd-networkd管理网络的话 则需要启用systemd-networkd-wait-online.service, netctl管理网络的话,启用netctl-wait-online.service


Arch Linux User

离线

#3 2019-05-23 23:57:51

azuki
会员
注册时间: 2018-11-28
帖子: 6

Re: [已解决]使用 systemctl enable 无法开机启动 shadowsocks-libev

@wxg4net
似乎和ss-libev的配置有关,填域名就不行。难道需要先获得地址,而不是有请求来的时候再获得?

但是也说不通,在我断网的时候,依然可以用systemctl start来启动那些填域名的配置啊……

离线

#4 2019-05-24 00:11:19

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,960
个人网站

Re: [已解决]使用 systemctl enable 无法开机启动 shadowsocks-libev

azuki 说:

@wxg4net
似乎和ss-libev的配置有关,填域名就不行。难道需要先获得地址,而不是有请求来的时候再获得?

但是也说不通,在我断网的时候,依然可以用systemctl start来启动那些填域名的配置啊……

你看一下日志吧……
我这里是 After=network-online.target,然后这个 target 是要真的连上了互联网才会达到的。

离线

#5 2019-05-24 12:41:11

azuki
会员
注册时间: 2018-11-28
帖子: 6

Re: [已解决]使用 systemctl enable 无法开机启动 shadowsocks-libev

看了一下日志,显示不能解析hostname然后退出:

shadowsocks-libev@config-xxx.service: Failed with result 'exit-code'.
shadowsocks-libev@config-xxx.service: Main process exited, code=exited, status=255
2019-05-24 11:55:26 ERROR: getaddrinfo: Name or service not known
2019-05-24 11:55:26 ERROR: failed to resolve the provided hostname

pppoe自动连接是在5秒之后(11:55:31)

11:55:31 NetworkManager[520]: <info>  [1558670131.2373] policy: auto-activating connection 'DSL 连接 1'

然后我根据错误信息找到了github上的这个issue。他也是用arch。
但是我没有尝试他提到的方法,因为他提到的/usr/lib/systemd/system/shadowsocks-libev@.service在我这里本来就有Wants=network-online.target那一行。问题还是没有解决。

ps:出错的都是server填域名的配置,server填ip的配置都可以在pppoe连接之前启动。(时间也是11:55:26)
为什么After=network-online.target对它们无效呢? sad

===============

顺便,我又试了一下wifi连接,什么问题都没有。wifi先激活,然后ss-libev启动是2秒之后:

12:13:50 NetworkManager[525]: <info>  [1558671230.8461] policy: auto-activating connection 'wifi'
12:13:52  audit[1]: SERVICE_START pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=shadowsocks-libev@config-xxx

唔……又有了新的问题,为什么wifi正常,而pppoe连接却在ss-libev之后呢? sad

离线

#6 2019-05-24 13:24:18

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,960
个人网站

Re: [已解决]使用 systemctl enable 无法开机启动 shadowsocks-libev

启动 network-online.target 的程序没能处理好。推荐我的 wait-online 程序(AUR / cn 源 wait-online-git 包)

离线

#7 2019-05-24 14:57:50

azuki
会员
注册时间: 2018-11-28
帖子: 6

Re: [已解决]使用 systemctl enable 无法开机启动 shadowsocks-libev

感谢依云!使用 wait-online 果然没问题了。

离线

页脚