Назад | Перейти на главную страницу

Сценарий оболочки для управления процессами, инициируемыми пользователем

Я не эксперт по сценариям оболочки. Я ищу сценарий оболочки, который проверяет максимальное количество процессов 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.