我不是 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。