守护进程示例脚本 - nichuanfang/kodi-metadata-tmdb-cli GitHub Wiki
以 systemd为例,创建 /lib/systemd/system/kodi-tmdb.service
文件,内容如下:
[Unit]
Description=kodi metadata
[Service]
Type=simple
KillMode=process
User=download
LimitAS=infinity
LimitRSS=infinity
LimitCORE=infinity
LimitNOFILE=65536
ExecStart=/usr/local/bin/kodi-tmdb-linux-amd64 -config /usr/local/etc/kodi-tmdb.json
RestartSec=3
Restart=on-failure
LimitCORE=infinity
[Install]
WantedBy=default.target
然后执行:
systemctl daemon-reload
systemctl start kodi-tmdb.service
语法参考:systemd (简体中文)
创建文件 /Library/LaunchDaemons/kodi.tmdb.plist
,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>fengqi.kodi.tmdb</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/kodi-tmdb-darwin-amd64</string>
<string>-s</string>
<string>/usr/local/etc/kodi-tmdb.json</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
然后执行命令:
cd /Library/LaunchDaemons/
sudo launchctl load fengqi.kodi.tmdb.plist.plist
@echo off
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
cd /d "%~dp0"
nssm restart tmm
timeout /t 1
@echo off
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
cd /d "%~dp0"
nssm stop tmm
timeout /t 1
参考:Synology NAS - How to make a program run at startup
创建文件 /etc/init.d/kodi-tmdb
内容如下:
#!/sbin/openrc-run
depend() {
use logger dns
need net
after firewall
}
start() {
ebegin "Starting kodi tmdb cli"
start-stop-daemon -S -b -m -p /var/run/kodi-tmdb.pid -x /usr/local/bin/kodi-tmdb-linux-amd64 -- -config /usr/local/etc/kodi-tmdb.json
eend $?
}
stop() {
ebegin "Stopping kodi tmdb cli"
start-stop-daemon --stop --pidfile /var/run/kodi-tmdb.pid
eend $?
}
然后执行:
chmod +x /etc/init.d/kodi-tmdb
rc-update add kodi-tmdb
rc-update start kodi-tmdb
文档参考: Writing Init Scripts