Сценарий Fedora 13 init.d, не могу остановиться - PullRequest
0 голосов
/ 20 августа 2010

Я написал сценарий init.d, который предполагает запуск процесса Java CLI.
Проблема в том, что когда я его прекращаю, я получаю [сбой], и процесс все еще выполняется.
спасибо

</p> <pre>#!/usr/bin/env bash # # chkconfig: 345 97 03 # # processname: quotes-srv # # # source function library . /etc/rc.d/init.d/functions NAME=quotes-srv start() { echo -n $"Starting $NAME: " daemon +19 java -Dlog4j.configuration="file:/opt/quotes/properties/log4j/log4j.properties" -Dproperties_folder="/opt/quotes/properties/app/" -jar /opt/quotes/trade-0.0.1-SNAPSHOT-jar-with-dependencies.jar & touch /var/lock/subsys/$NAME } stop() { echo -n $"Stopping $NAME: " killproc $NAME echo rm -f /var/lock/subsys/$NAME } restart() { stop start } case "$1" in start) start ;; stop) stop ;; restart|force-reload|reload) restart ;; condrestart|try-restart) [ -f /var/lock/subsys/$NAME ] && restart ;; status) status $NAME ;; *) echo $"Usage: $0 {start|stop|status|restart|reload|force-reload|condrestart}" exit 1 esac exit 0

1 Ответ

1 голос
/ 20 августа 2010

killproc завершит работу программ в списке процессов, которые соответствуют имени $ NAME

Строго говоря, это в вашем случае java .

Если это единственный процесс Java, вы можете пойти и положить Java в $ NAME

Если вы запускаете другие java-сервисы, вам нужно найти другой способ остановить ваш java-процесс, например, поместите PID в файл / var / lock / subsys / $ NAME и затем завершите процесс, используя pid.

По крайней мере, в Debian есть хороший инструмент, который помогает с этим, но я не уверен, что он существует для RedHat.

...