Você rc.local está corrompido!
/usr/local/bin/ssserver -c /etc/shadowsocks.json -d start
#!/bin/bash
exit 0
deve ser
#!/bin/bash
/usr/local/bin/ssserver -c /etc/shadowsocks.json -d start
exit 0
EDITAR:
Eu não sei exatamente o que está errado com o seu serviço rc.local
systemd.
Eu, no entanto, criaria uma unidade systemd separada para shadowocks, assim você pode iniciar e parar isso ... por exemplo, quando você quer recarregar a configuração, e você assim como todos os outros que terão que manter o servidor sabe qual serviço reiniciar.
Um arquivo de unidade systemd de sombras de amostra:
[Unit]
Description=Shadowsocks proxy server
[Service]
User=www-shadow
Group=www-shadow
Type=simple
ExecStart=/usr/local/bin/ssserver -c /etc/shadowsocks/shadowsocks.json -a shadowsocks -v start
ExecStop=/usr/local/bin/ssserver -c /etc/shadowsocks/shadowsocks.json -a shadowsocks -v stop
[Install]
WantedBy=multi-user.target
Note que aqui temos um usuário www-shadow
para executar o proxy, o usuário é membro de www-shadow
group. Para manter seu /etc
arrumado, é melhor criar um diretório /etc/shadowsocks
e colocar o JSON junto com qualquer outro arquivo relacionado a shadowocks. Eu tenho o básico para o arquivo de unidade systemd acima de linode.com , no entanto, eles querem executar o proxy como root (baaaaaaaaaad) ... dado que ele usa a porta 8388
por padrão, duvido que isso seja necessário. Observe que, se você não criar um grupo e usuário www-shadow
para a unidade, o systemd executará o serviço com felicidade como root
(longa história, "aparentemente" por design).
Eu não tenho experiência com sombras (eu só usei o squid para proxy e ssh para proxies de meias ;-) e não tenho tempo para procurá-lo, mas depois de uma rápida olhada no arquivo unitário, parece razoável (além do root
loucura).
Usar o arquivo rc.local
unit (que é para compatibilidade com versões anteriores) não faz muito sentido, imho, você perde um ExecStop e você precisa lembrar que o rc.local é o shadowsocks ...
Se você quiser corrigir a unidade rc.local
, ela deve ser 755
( chmod 755 /etc/rc.d/rc.local
), ninguém quer um script daemon gravável do mundo, isso pode ser outro problema com ela. O iho, systemd nem sempre é razoável, mas duvido que seja executado um script gravável do mundo.
Por segurança, você poderia postar a saída de ls -l /etc/rc.d/rc.local
em sua pergunta.
EDIT2:
D'oh (eu sou bobo, ele estava lá o tempo todo e eu não percebi), seu arquivo de unidade está faltando uma diretiva [Install]
:
[Install]
WantedBy=multi-user.target