这个故障 很绕,但遇到的朋友一下就明白
先发下解析思路
rc.local开启一个用于建立screen 脚本xxxxx_s.sh
#!/bin/bash
ssh -t localhost
/usr/bin/screen -dmS ss1
sleep 1
/usr/bin/screen -x -S ss1 -p 0 -X stuff "w"
/usr/bin/screen -S ss1 -X stuff 'ssh -t localhost'`echo -ne '\015'`
/usr/bin/screen -S ss1 -X stuff 'date'`echo -ne '\015'`
/bin/nohup /usr/bin/syncthing &> /dev/null &
再crontab 中进行 * * * * * 的xxxxx_crontab.sh运行
#!/bin/bash
screenNum=`screen -ls |wc -l `;[[ $screenNum -lt 5 ]] && xxxxx_s.sh
发一下systemctl 使用中的代码
[Unit]
Description=Syncthing - Open Source Continuous File Synchronization for %I
Documentation=man:syncthing(1)
After=network.target
[Service]
User=%i
ExecStart=/usr/bin/syncthing -no-browser -no-restart -logflags=0
Restart=on-failure
RestartSec=5
SuccessExitStatus=3 4
RestartForceExitStatus=3 4
# Hardening
ProtectSystem=full
PrivateTmp=true
SystemCallArchitectures=native
MemoryDenyWriteExecute=true
NoNewPrivileges=true
Install]
WantedBy=multi-user.target
###########
[Unit]
Description=Restart Syncthing after resume
Documentation=man:syncthing(1)
After=sleep.target
[Service]
Type=oneshot
ExecStart=-/usr/bin/pkill -HUP -x syncthing
[Install]
WantedBy=sleep.target
#######
[Unit]
Description=Syncthing - Open Source Continuous File Synchronization
Documentation=man:syncthing(1)
[Service]
ExecStart=/usr/bin/syncthing -no-browser -no-restart -logflags=0
Restart=on-failure
RestartSec=5
SuccessExitStatus=3 4
RestartForceExitStatus=3 4
# Hardening
SystemCallArchitectures=native
MemoryDenyWriteExecute=true
NoNewPrivileges=true
[Istall]
WantedBy=default.target
/usr/lib/systemd/user/syncthing.service (E