shtools/servicify
2025-06-30 19:04:59 +08:00

32 lines
679 B
Bash

#!/bin/sh
if [ ! -f "start.sh" ] || [ ! -f "stop.sh" ]; then
echo "current folder should have start.sh and stop.sh"
exit 1
fi
workdir=$(pwd)
servicename=$(basename `pwd`)
sudo cat > /etc/systemd/system/$servicename.service <<EOF
[Unit]
Wants=systemd-networkd.service
[Service]
Type=forking
WorkingDirectory=$workdir
ExecStart=$workdir/start.sh
ExecStop=$workdir/stop.sh
StandardOutput=append:/var/log/$workdir/$workdir.log
StandardError=append:/var/log/$workdir/$workdir.log
SyslogIdentifier=$workdir
[Install]
WantedBy=multi-user.target
EOF
sudo mkdir /var/log/$workdir
sudo systemctl daemon-reload
sudo systemctl enable $servicename
sudo systemctl restart $servicename