我不是shell脚本专家。 我正在寻找一个shell脚本,用于在启动/执行当前Java进程之前检查在系统中运行的最大Java进程数(MyJavaStandalone)。
例:
脚本: /home/myfolder/script.sh
script.sh包含
/usr/java/jdk1.6.0/bin/java MyJavaStandalone >> $DATE.log &
这里,在执行“MyJavaStandalone”之前,如果已经有10个进程正在运行,那么不应该启动这个当前进程。
尝试这样的事情,假设你已经安装了“procps”工具:
#!/bin/bash if (( $(pgrep -cf "java MyJavaStandalone") < 10 )) then /usr/java/jdk1.6.0/bin/java MyJavaStandalone >> $DATE.log & fi
说明:
pgrep命令计算当前在进程表中的脚本的拷贝数。 (( ... ))构造是在shell中进行基本的math比较和操作的简单方法,在这种情况下,检查pgrep命令的输出是否小于10。