Как я могу остановиться, банка Java подают приложение, которое было запущено с этой командой

Изодромные с предварением файлы являются способом пойти, однако, во многом как init сценарии только сдаются, когда они видят изодромный с предварением файл, необходимо проверить, чтобы гарантировать, что pid в файле все еще существует.

Что-то вроде этого добилось бы цели:

PIDFILE=/var/run/myscript.pid

if [ -e "$PIDFILE" ] ; then
    # our pidfile exists, let's make sure the process is still running though
    PID=`/bin/cat "$PIDFILE"`
    if /bin/kill -0 "$PID" > /dev/null 2>&1 ; then
        # indeed it is, i'm outta here!
        /bin/echo 'The script is still running, forget it!'
        exit 0
    fi
 fi

 # create or update the pidfile
 /bin/echo "$$" > $PIDFILE

 ... do stuff ...

 /bin/rm -f "$PIDFILE"
2
задан 18 December 2012 в 22:35
2 ответа

Вы можете использовать комбинацию ps и kill, чтобы остановить конкретный процесс.

Сначала выполните ps -aux | grep minecraft , чтобы получить номер процесса - второе поле, первое число.

Затем вы можете выполнить kill $ PID , чтобы отправить SIGTERM процессу и корректно завершить его.

3
ответ дан 3 December 2019 в 10:52

Ungasebenzisa ezi fayile zimbini zilandelayo ukuqala / ukumisa service.jar

start.sh

#!/usr/bin/env bash
PID=0
if [ -f './pid' ]; then
    PID=$(cat ./pid)
fi

if ps -p $PID > /dev/null
then
   echo "Service with $PID is already running"
else
    nohup java -jar ./service.jar > service.out 2> errors.txt < /dev/null & PID=$!; echo $PID > ./pid
fi

stop.sh

#!/usr/bin/env bash
if [ -f './pid' ]; then
    PID=$(cat ./pid) && kill -15 $PID
fi
0
ответ дан 3 December 2019 в 10:52

Теги

Похожие вопросы