shell监视进程是否存在

在项目中遇到magent进程意外消失的问题,通过编写shell脚本进行监控,并在进程不存在时自动启动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目中发现magent进程莫名没有了,先写个shell脚本监控一下。有时间再查找原因。

#!/bin/sh


pid=`ps -ef | grep "magent" | grep "11113" | awk '{print $2}'`
if [ "$pid" == "" ];then
magent -u root -n 51200 -l 192.168.0.1 -p 11113 -s 192.168.0.2:11211 -s 192.168.0.3:11211 -b 192.168.0.1:11211
else
echo $pid > /dev/null
fi

### 如何在 Shell 中终止 Shell 进程 在 Linux 或 Unix 系统中,可以通过多种方法使用 Shell 命令来终止正在运行的 Shell 进程。以下是几种常见的方法及其详细说明: #### 方法一:使用 `kill` 命令 `kill` 是一种通用的方法,用于向指定的进程发送信号以终止其运行。要终止特定的 Shell 进程,首先需要找到该进程的 PID(Process ID),然后使用 `kill` 命令。 1. **查找目标 Shell 的 PID** 使用 `ps` 和 `grep` 组合命令定位目标 Shell 进程的 PID。 ```bash ps aux | grep "[s]hell_script_name" | awk '{print $2}' ``` 上述命令会返回匹配到的目标 Shell 脚本对应的 PID 列表[^1]。 2. **发送终止信号** 找到目标 PID 后,可以使用以下命令终止对应进程: ```bash kill -9 <PID> ``` 此处 `-9` 表示发送 SIGKILL 信号,这是一种强制终止的方式[^2]。 #### 方法二:通过内置命令退出当前 Shell 对于当前运行的交互式 Shell,可以直接使用内部命令完成退出操作而无需外部工具。 - 输入 `exit` 即可正常关闭当前终端会话或子 shell 实例[^5]。 - 如果希望立即中断程序而等待清理工作,则可通过快捷键组合 Ctrl+C 发送中断信号 (SIGINT)[^3]。 #### 方法三:编写自动化脚本来管理进程生命周期 当面对复杂场景需定期检测某些服务状态并适时采取行动时,考虑构建专门负责此类任务的小型守护程序失为明智之举。例如下面展示了一个简单例子用来持续监视某 Python 应用是否存活;一旦发现停止即刻重新启动之[^4]: ```bash #!/bin/bash while true; do monitor=$(pgrep python_app || echo "") if [[ -z "$monitor" ]]; then nohup /path/to/python_app & fi sleep 5 done ``` 以上三种途径分别适用于同场合下的需求——无论是手动干预还是批量处理亦或是长期维护皆有所涉猎。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值