Как перезапустить Java-процесс в пакетном файле формы Linux? - PullRequest
0 голосов
/ 11 декабря 2019

Я хочу перезапустить процесс на сервере Linux. Я использую цикл для уничтожения и запуска процесса.

!/bin/bash

pgrep -f java | while read x; 
do 
    addr= pwdx x | awk '{print $2}'
    echo "$addr"
    kill -9 $x
    nohup sh $addr/start.sh >/dev/null 2>&1 
done

Я сохраняю адрес в проверяемом. Затем я убиваю этот процесс и использую nohup для запуска этого процесса. Но процесс не запускается. Я думаю, что эта строка неверна.

nohup sh $addr/start.sh >/dev/null 2>&1 

1 Ответ

0 голосов
/ 11 декабря 2019

Я вижу несколько ошибок в скрипте. Строка:

!/bin/bash

должна быть

#!/bin/bash

, присвоение переменной addr неверно. Вместо этого

addr= pwdx x | awk '{print $2}'

должно быть

addr=$(pwdx x | awk '{print $2}')

Также целесообразно перенаправить STDOUT в файл, а не на /dev/null, поскольку это может помочь в отладке и мониторинге приложения. И вы забыли поставить это в фоновом режиме

nohup sh $addr/start.sh >/path/to/standard.log 2>/path/to/error.log &
...