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

Запустить процесс Java и контролировать через 10 секунд

Я хотел бы запустить java-процесс ... а затем проверить, работает ли он по-прежнему через 10 секунд из сценария bash.

Есть простой способ сделать это?

Вы можете сделать это немного лучше, используя $! чтобы получить PID последней выполненной команды, и используя kill -0 чтобы проверить, работает ли он.

#!/bin/sh
java &
PID=$!
sleep 10
if kill -0 $PID; then
    echo "running"
else
    echo "not running"
fi

Я удивлен, что никто не упомянул "jps". Попытайся!

ну, создайте файл с именем something.sh, замените program на имя вашей программы:

java -jar program
sleep 10
ps aux| grep program

Если выход пуст, значит он перестал работать. Запустите его с помощью sh something.sh.

Сохраните идентификатор процесса Java-процесса, который вы создали (немедленно вызовите его).

PID = $ (pgrep -n java | голова -n 1)

Позже используйте поиск процесса, чтобы найти с помощью PID

ps --no-headers $PID

в этот момент, если $? равно 0, значит, процесс все еще выполняется. Если он равен 1, процесс завершен.

Спасибо за вопрос. Возможно, вы захотите взглянуть на следующий пример сценария и убедиться, что это то, что вам нужно:

#! / bin / sh
MYPROCESS = 'ваш-Java-процесс'
if ($ (ps aux | grep $ MYPROCESS | grep -v «grep $ MYPROCESS ″ | wc -l)> 0)
затем
echo "Сервис $ MYPROCESS запущен, все в порядке">
еще
echo "$ MYPROCESS не запущен"
фи

Приведенный ниже оператор «if» проверяет, запущен ли процесс, с помощью команды «ps». В операторе if «ps aux» перечисляет текущие запущенные процессы. В следующем разделе выясняется ваш процесс, затем мы исключаем процесс grep из полученного списка ваших процессов и, наконец, подсчитываем количество экземпляров. Если этот результат больше нуля, ваш процесс запущен, иначе - нет.

Надеюсь это поможет...