gpt4 book ai didi

macos - 通过进程名称使用 Bash 检查 Mac 进程是否正在运行

转载 作者:行者123 更新时间:2023-11-29 08:44:46 25 4
gpt4 key购买 nike

如何使用 Bash 脚本中的进程名称检查 Mac OS X 上的进程是否正在运行?

我正在尝试编写一个 Bash 脚本,如果它已经停止,它将重新启动一个进程,但如果它仍在运行,则什么都不做。

最佳答案

解析:

ps aux | grep -v grep | grep -c [-i] $ProcessName

...可能是您最好的选择。

ps aux 列出所有当前正在运行的进程,包括 Bash 脚本本身,它由 grep -v grep 根据 Jacob 的建议(在评论中)和 grep -c [-i] $ProcessName 返回可选的不区分大小写的整数进程数,由 Sebastian 建议返回整数。

这是一个简短的脚本,可以完成您的任务:

#!/bin/bash
PROCESS=myapp
number=$(ps aux | grep -v grep | grep -ci $PROCESS)

if [ $number -gt 0 ]
then
echo Running;
fi

编辑: 我最初在 grep 中包含了一个 -i 标志,以使其不区分大小写;我这样做是因为我尝试的示例程序是 python,它在 Mac OS X 上作为 Python 运行——如果您确切地知道您的应用程序的情况,-i 不是必需的。

这种方法的优势在于它可以随您扩展——在未来,如果您需要确保,比方说,您的应用程序的 5 个实例正在运行,您已经在计算了。唯一需要注意的是,如果另一个应用程序的命令行中有您的程序名称,它可能会出现——grep 的正则表达式将解决该问题,如果您很狡猾(并遇到这个问题)。

研究 ps 的 Darwin 手册页, grep , 和 wc .

关于macos - 通过进程名称使用 Bash 检查 Mac 进程是否正在运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1821886/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com