Возможное решение:
Вашей системе не удается завершить работу? (т.е.: Зависнуть?) В противном случае затем это определенно закрывает процесс, просто не в способе, которым Вы могли бы хотеть. И был запуск, пишут сценарий чего-то, что Вы записали или существовали пакета? Это корректно, чтобы предположить выполнение некоторой работы с/etc/init.d сценариями? Вы собираетесь хотеть дать нам немного больше информации.
Разногласия, необходимо было зарегистрировать процесс в chkconfig. Просто вставление Kscripts/etc/rc#.d/не достаточно, поскольку я не полагаю, что их называют, если chkconfig не знает о них.
По существу для Вашего сценария нужны строки при главном утверждении
# chkconfig: 345 99 10 # description: This is what my script does.
Первые состояния линии runlevels это должно быть запущено на, а также приоритетный запуск и уровни завершения работы. (Это создало бы сценарии S99 в/etc/rc3.d,/etc/rc4.d, и/etc/rc5.d и сценарии K10 всего остальные),
Вдобавок к этому chkconfig сделает регистрацию/var/lock/subsys/, чтобы видеть, существует ли lockfile там для Вашего сервиса. Так коснитесь файла то же имя как Ваш сервис в том каталоге, когда это запускается, и удалите его, когда это выходит.
Принятие Вас имеет вышеупомянутые объекты в Вашем сценарии, оно должно быть зарегистрировано в chkconfig. Для добавления сценария сделать chkconfig --add <name>
. Просто удостоверьтесь, что сценарий находится в/etc/init.d/с именем собственным.
Я видел эту проблему несколько раз с Tomcat. Несколько вещей, которые могли бы помочь:
Установлено ли профилирование? У Tomcat есть известная проблема с профилированием, заключающаяся в том, что он не выключается должным образом, если он установлен. В сценарии shutdown.sh есть обходной мод, но я все еще ищу его сам. Это в Tomcat 7, не знаю, есть ли это также в Tomcat 6.
Лучший способ выключить Tomcat - это использовать сценарий выключения. Но многие люди сталкиваются с проблемами с этим и заканчивают тем, что убивают процесс вручную.
Сценарий выключения работает правильно только в том случае, если сценарии, которые будут затронуты во время процесса выключения, либо:
это не сработает, если пользователь принадлежит к вторичным группам.
В случае, если вам нужно выбрать уничтожение процесса, вы можете использовать указанный ниже сценарий, чтобы сделать его одной командой (поиск процесс, а затем убивает его). Просто вставьте внутри скрипт и запускайте его всякий раз, когда вы хотите убить запущенного tomcat.
#Finds the tomcat process id
ps aux | grep tomcat | grep JavaVirtualMachines | awk -F " " '{print $2}' > tomcatProcessID
#Kills the process id returned from above mentioned command.
kill -9 `cat tomcatProcessID` && tput setaf 3 && echo "Tomcat killed Successfully" ;rm -rf tomcatProcessID
#Not a mandatory command.
#Used to show all the remaining processes with 'tomcat' keyword in it.
#To inform on the console that the tomcat (running ess or indexer) is killed.
ps aux | grep tomcat | grep -v grep | grep -v killtomcat
Если хотите, вы можете добавить ps aux | grep tomcat | grep -v grep | grep -v killtomcat
в конце, чтобы показать оставшиеся процессы tomcat после попытки убийства.
Надеюсь, это поможет.