#/bin/bash while true do pid=`ps -ef | grep 000000100000000001 | grep -v grep | awk '{print $2}'` if kill -0 ${pid} > /dev/null 2>&1 then echo "pid=${pid} is running" sleep 60 else echo "CMS is not running,restarting" /usr/bin/qemu-aarch64-static /home/iCVS2.1/server/bin/CMS.out addr="192.168.10.17" port=9909 spid=000000100000000001 pwd=e10adc3949ba59abbe56e057f20f883e ip=192.168.10.17 ini="/home/iCVS2.1/server/conf/CMS_1.ini" sleep 30 fi done
时间: 2024-02-10 13:21:27 浏览: 23
这是一个 Bash 脚本,它的作用是检测一个名为 CMS.out 的进程是否在运行,如果没有运行则重新启动它。具体实现方式是使用 ps 命令获取进程列表,然后使用 grep 和 awk 筛选出 CMS.out 进程的 PID,然后使用 kill 命令检测该进程是否在运行,如果在运行则打印提示信息并等待 60 秒,否则打印重启提示信息,并使用 qemu-aarch64-static 命令重新启动 CMS.out 进程,等待 30 秒后再次检测是否在运行。该脚本使用了一个无限循环来持续检测和重启进程。
相关问题
adb shell "kill -9 `ps -ef | grep monkey | grep -v grep | awk '{print $2}'`"
您提供的命令是用于通过adb shell命令在Android设备上终止Monkey进程的命令。下面是对您提供的命令的解释:
```bash
adb shell "kill -9 `ps -ef | grep monkey | grep -v grep | awk '{print $2}'`"
```
解释如下:
- `adb shell`:通过adb连接到Android设备的shell终端。
- `kill -9`:kill命令用于终止指定进程,`-9`是kill命令的一个选项,表示使用强制终止(强制杀死)方式。
- `ps -ef`:ps命令用于列出正在运行的进程。`-ef`选项将显示所有进程的详细信息。
- `grep monkey`:grep命令用于过滤包含指定关键字的行。在这里,它将过滤包含"monkey"关键字的行,以筛选出与Monkey相关的进程。
- `grep -v grep`:通过使用`-v grep`选项,它将排除包含"grep"关键字的行,以避免将grep命令本身作为进程之一。
- `awk '{print $2}'`:awk命令用于提取指定字段的值。在这里,它提取出进程列表中的第二个字段,即进程ID(PID)。
综上所述,该命令的作用是通过组合使用ps、grep和awk命令,找到Monkey进程的PID,并使用kill命令强制终止该进程。
请注意,在终止进程时要小心,并确保您真正需要终止Monkey进程。如果不确定,请先确认要终止的进程是否正确。
希望以上信息对您有所帮助!如果您还有其他问题,请随时提问。
帮我写一个脚本:执行ps -ef | grep auth-server.jar|grep -v grep |awk '{print$2}',如果返回结果为0,则不管,否则执行ps -ef | grep auth-server.jar|grep -v grep |awk '{print$2}'| xargs kill -9
好的,以下是一个简单的脚本,可以实现你的需求:
```bash
#!/bin/bash
PID=$(ps -ef | grep auth-server.jar | grep -v grep | awk '{print $2}')
if [[ -z $PID ]]; then
echo "auth-server.jar is not running."
else
echo "auth-server.jar is running with PID $PID. Killing the process..."
ps -ef | grep auth-server.jar | grep -v grep | awk '{print $2}' | xargs kill -9
echo "Process has been killed."
fi
```
这个脚本首先使用 `ps -ef | grep auth-server.jar | grep -v grep | awk '{print $2}'` 命令查找进程 ID,并将其赋值给变量 `$PID`。然后判断 `$PID` 是否为空,如果为空则输出 `auth-server.jar is not running.`,否则输出 `auth-server.jar is running with PID $PID. Killing the process...`,并使用 `ps -ef | grep auth-server.jar | grep -v grep | awk '{print $2}' | xargs kill -9` 命令结束进程。最后输出 `Process has been killed.`。
你只需要将这段代码保存到一个文件中,比如 `kill_auth_server.sh`,然后在终端中执行 `bash kill_auth_server.sh` 即可。