Shell 脚本控制用户启动的进程

Shell 脚本控制用户启动的进程

我不是 shell 脚本专家。我正在寻找一个 shell 脚本,用于在启动/执行当前 Java 进程之前检查系统中运行的 Java 进程 (MyJavaStandalone) 的最大数量。

例子:

脚本:/home/我的文件夹/script.sh

script.sh包含

/usr/java/jdk1.6.0/bin/java MyJavaStandalone >> $DATE.log &

这里,在执行“MyJavaStandalone”之前,如果已经有10个进程在运行,那么不应该启动这个当前进程。

答案1

尝试这样的操作,假设你已经安装了'procps'工具:

#!/bin/bash

if (( $(pgrep -cf "java MyJavaStandalone") < 10 ))
then
    /usr/java/jdk1.6.0/bin/java MyJavaStandalone >> $DATE.log &
fi

解释:

pgrep命令会计算当前进程表中脚本的副本数。该(( ... ))构造是一种在 shell 中进行基本数学比较和运算的简单方法,在本例中,检查命令的输出是否pgrep小于 10。

相关内容