前言
在macos中如何监测一个进程,并且在进程挂了的时候可以重启
一、使用linux的自带的systmd工具
具体是啥可以百度
二、使用步骤
1.创建文件
代码如下(示例):
- 在/Library/LaunchAgents/ 或者在/Library/LaunchDaemons/目录下面创建.plist文件
- 编辑该.plist 文件
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.example.run_sd_webui</string>
<key>EnvironmentVariables</key>
<dict>
<key>GIT_PYTHON_GIT_EXECUTABLE</key>
<string>/usr/bin/git</string>
<key>PATH</key>
<string>/Users/test/miniconda3/bin:$PATH</string>
<!-- 添加其他环境变量 -->
</dict>
<key>ProgramArguments</key>
<array>
<string>/Users/test/run_sd_webui.sh</string>
</array>
<key>KeepAlive</key>
<true/>
<key>RunAtLoad</key>
<true/>
<key>WorkingDirectory</key>
<string>/Users/test</string>
<key>StandardOutputPath</key>
<string>/var/log/run_sd_webui.log</string>
<key>StandardErrorPath</key>
<string>/var/log/run_sd_webui.log</string>
</dict>
</plist>
2.启动
- 更改文件权限
chmod +x com.example.run_sd_webui.plist
- 启动运行
sudo launchctl load /Library/LaunchAgents/your_plist_file.plist
sudo launchctl stop com.example.run_sd_webui //停止
sudo launchctl start com.example.run_sd_webui //启动
- 查看是否运行
sudo launchctl list | grep com.example.run_sd_webui
总结
linux的自启动何监控进程,并且进程挂了会重新启动类似,见下面链接
linux使用systemd工具实现类似的功能