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

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