Я не эксперт по сценариям оболочки. Я ищу сценарий оболочки, который проверяет максимальное количество процессов Java (MyJavaStandalone), запущенных в системе, перед запуском / выполнением текущего процесса Java.
Пример:
Сценарий: /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
Команда подсчитывает количество копий вашего скрипта в таблице процессов. В (( ... ))
construct - это простой способ выполнять базовые математические сравнения и операции в оболочке, в этом случае проверяя, есть ли на выходе pgrep
команда меньше 10.