On a Linux OS there are a few ways to launch Resilio Connect Proxy process at system boot as also restart it if it stops for a reason.
At least one first run of the proxy process is required before relying on the startup scripts below.
Linux Systemd Service
(recommended)
Create file /lib/systemd/system/resilio-connect-proxy.service
(superuser's permissions required) with the following content.
[Unit] Description=Resilio Connect Proxy Service Documentation=https://connect.resilio.com After=network.target network-online.target [Service] Type=forking UMask=0002 Restart=always PermissionsStartOnly=true User=<some_user> Group=<some_group>
PIDFile=/home/<some_user>/resilio-connect-proxy/.sync/sync.pid ExecStart=/home/<some_user>/resilio-connect-proxy/rslproxy --proxy --storage /home/<some_user>/resilio-connect-proxy/.sync [Install] WantedBy=multi-user.target
Replace <some_user>
and <some_group>
with the user and group that will run the proxy process. Put the valid path to the binary (for example /usr/bin/proxy
) to ExecStart
directive. Make sure that the path to .sync directory in this service file also points to the true proxy's storage path.
Save the file and run command
sudo systemctl daemon-reload
To start the service run command
sudo systemctl start resilio-connect-proxy.service
To add service to autostart run command
sudo systemctl enable resilio-connect-proxy.service
Using Supervisor
Install Supervisor:
sudo apt install supervisor
Edit its config file located here: /etc/supervisor/supervisord.conf
Add the following lines to the config to make Supervisor to take care the proxy:
[program:worker] command=/home/<some_user>/resilio-connect-proxy/rslproxy --storage /home/<some_user>/resilio-connect-proxy/.sync stdout_logfile=/home/<some_user>/resilio-connect-proxy/stdout.log autostart=true autorestart=true user=<some_user>
redirect_stderr=true stopsignal=KILL numprocs=1
Replace <some_user> with required username. Save the config and restart Supervisor:
/etc/init.d/supervisor restart
or
sudo systemctl restart supervisord
Supervisor official docs are here.
Docker
Install Docker:
sudo apt install docker.io
Download proxy executable file and create Dockerfile
beside it with the following content:
FROM ubuntu:18.04 ARG USER=resilio ARG GROUP=resilio ARG USERID=555 ARG GROUPID=555 RUN apt-get update && \ apt-get install -y libnuma1 libnuma-dev RUN groupadd -g ${GROUPID} ${GROUP} && \ useradd -m -u ${USERID} -g ${GROUPID} ${USER} WORKDIR /home/${USER} COPY rslproxy . RUN mkdir .sync RUN chown -R ${USER}:${GROUP} /home/${USER} USER ${USER} ENTRYPOINT ["./rslproxy"] CMD ["--nodaemon", "--log", "/home/resilio/.sync/proxy.log", "--storage", "/home/resilio/.sync"]
Build image:
sudo docker build -t resilio-connect-proxy .
Create storage folder and set permissions:
mkdir storage && sudo chown -R 555:555 ./storage
And run the container from the image in host
network mode:
sudo docker run -d --network host --restart always -v $(pwd)/storage:/home/resilio/.sync resilio-connect-proxy
Docker official docs are here
Crontab
The easiest is to add a cron task. The minimal command is below. Every minute it will check for the running process and start it if necessary. In Terminal run command crontab -e
. Enter the command below, be sure to uncomment the line (remove #)
*/1 * * * * ps -A | grep rslproxy || /home/admin/proxy/rslproxy --storage /home/admin/proxy/.sync
Use the valid path to rslproxy binary instead of /home/admin/proxy
> use the correct path to .sync storage folder. By default it’s created in current directory (pwd) on first launch. Since cron is started from a different directory, full path to .sync shall be specified
Save the file. It’s important to at least once launch the proxy with the configuration file and connect it to the Management Console before going with the cronjob.
This option is applicable if there is no regular agent (rslagent) running on this system at the same time.