¿ªÔÆÌåÓý

Working systemd config direwolf.service systemctl


 

Since I just spent an hour messing with systemd files to get a direwolf.service working I wanted to post an operational one that may help some people.
?
?$ cat /etc/systemd/system/direwolf.service
[Unit]
Description=direwolf
After=network.target
[Service]
Type=forking
Restart=always
RestartSec=90
StartLimitInterval=400
StartLimitBurst=3
User=<USERNAME>
Group=<USERNAME>
ExecStart=/usr/bin/screen -S dw -d -m /usr/local/bin/direwolf
SyslogIdentifier=Direwolf
[Install]
WantedBy=multi-user.target
?
this assumes you built from source and have screen installed. check file destinations. after systemctl enable/start just run "screen -r dw"
?


 

¿ªÔÆÌåÓý

Thank you for this, Adam. I changed the systemd service on my pi to your configuration and it's nice to be able to use screen in an SSH session to monitor my digipeater's activity. I want to add that Control A followed by D (case-insensitive) detaches screen from monitoring Direwolf and returns you to the command prompt.

73.


 

¿ªÔÆÌåÓý

Thank you for that. The nice thing about Linux is that there several ways to accomplish a goal.

E.g., I use cron to both start and restart direwolf (if necessary) as user "repeater". Adjust arguments as needed:

# start at boot ...
@reboot sleep 10 && /usr/bin/screen -S direwolf -d -m /usr/local/bin/direwolf -c /home/repeater/direwolf.conf -L /home/repeater/direwolf.log -T "\%H:\%M:\%S \%d\%b\%Y"
# check every minute to see if it's running, restart if needed ...
* * * * * if [ x$(pidof direwolf) = "x" ]; then /usr/bin/screen -S direwolf -d -m /usr/local/bin/direwolf -c /home/repeater/direwolf.conf -L /home/repeater/direwolf.log -T "\%H:\%M:\%S \%d\%b\%Y"; fi

This again allows one to ssh from any device, type "screen -r direwolf" to observe activity, and Ctl-a Ctl-d to detach the screen session.

On 9/19/24 23:31, Adam K4SPB via groups.io wrote:

Since I just spent an hour messing with systemd files to get a direwolf.service working I wanted to post an operational one that may help some people.
?
?$ cat /etc/systemd/system/direwolf.service
[Unit]
Description=direwolf
After=network.target
[Service]
Type=forking
Restart=always
RestartSec=90
StartLimitInterval=400
StartLimitBurst=3
User=<USERNAME>
Group=<USERNAME>
ExecStart=/usr/bin/screen -S dw -d -m /usr/local/bin/direwolf
SyslogIdentifier=Direwolf
[Install]
WantedBy=multi-user.target
?
this assumes you built from source and have screen installed. check file destinations. after systemctl enable/start just run "screen -r dw"
?