Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Убийство процесса через скрипт

, Не получается убить процесс
Статус пользователя MonsteR1
сообщение 16.7.2013, 15:33
Сообщение #1
Стаж: 14 лет

Сообщений: 8
Благодарностей: 1
Полезность: 0

Всем привет.
Я использую скрипт https://c-s.net.ua/forum/topic27162.html для запуска сервера cs 1.6 на Linux CentOS 6.
Все вроде бы хорошо, но не работает одна команда "./имя скрипта restart". Точнее она работает, но не убивает процесс. Выходит сообщение желтым цветом: "Cannot kill hlds process of ZS server".
Покопавшись в скрипте я нашел тот кусок кода, который отвечает за убийство процесса.
Код
kill_process() {
    if [ "`ps -ef | grep hlds_ | grep -v hlds_run | grep ${hlds_ip} | grep ${hlds_port} | grep -v grep | wc -l`" -gt 0 ]; then
        printf "${title} Kill: `ps -ef | grep SCREEN | grep ${screen_name} | grep ${hlds_ip} | grep ${hlds_port} | grep -v grep`\n"
        ${start1} kill -9 "`ps -ef | grep SCREEN | grep ${screen_name} | grep ${hlds_ip} | grep ${hlds_port} | grep -v grep | awk '{print $2}'`"
        ${start1} rm -f ${path}/${hlds_pid}
    else
        printf "${title}${txtylw} Cannot kill hlds process of ${server_name} server\n"
    fi
}

Жду от вас помощи, господа! :)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя нуб2
сообщение 16.7.2013, 21:32
Сообщение #2


Стаж: 14 лет

Сообщений: 2367
Благодарностей: 1209
Полезность: 1014

MonsteR1,
лень читать скрипт, но что то мне подсказывает, что название пида и сервера в конфиге стоит без проблелов писать.

да я не читал
да я не проверял
да это просто догадка
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя MonsteR1
сообщение 17.7.2013, 9:48
Сообщение #3
Стаж: 14 лет

Сообщений: 8
Благодарностей: 1
Полезность: 0

Цитата(нуб2 @ 16.7.2013, 22:32) *
MonsteR1,
лень читать скрипт, но что то мне подсказывает, что название пида и сервера в конфиге стоит без проблелов писать.

да я не читал
да я не проверял
да это просто догадка


К сожалению, они и так без пробелов :)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя MonsteR1
сообщение 17.7.2013, 10:32
Сообщение #4
Стаж: 14 лет

Сообщений: 8
Благодарностей: 1
Полезность: 0

Немножко поэкспериментировав, я понял что, если из команды restart убрать опцию "stop", то убийство процесса происходит. Значит они конфликтуют между собой.
Код:
stop() {
if [ "`ps -ef | grep SCREEN | grep ${screen_name} | grep ${hlds_ip} | grep ${hlds_port} | grep -v grep | awk '{print $2}' | wc -l`" -eq 1 ]; then
/usr/bin/screen -dr `ps -ef | grep SCREEN | grep ${screen_name} | grep ${hlds_ip} | grep ${hlds_port} | grep -v grep | awk '{print $2}'`.${screen_name} -p 0 -X eval "stuff "quit""
/usr/bin/screen -dr `ps -ef | grep SCREEN | grep ${screen_name} | grep ${hlds_ip} | grep ${hlds_port} | grep -v grep | awk '{print $2}'`.${screen_name} -p 0 -X eval "stuff "$(printf \\r)""
sleep 1
${start1} rm -rf ${path}/${hlds_pid}

if [ "`ps -ef | grep hlds_ | grep -v hlds_run | grep ${hlds_ip} | grep ${hlds_port} | grep -v grep | wc -l`" -gt 0 ]; then
printf "${title}${txtred} Server not stopped!\n"
else
printf "${title} Server has been stopped\n"
fi
else
printf "${title}${txtylw} Cannot stop server ${server_name}, screen session not found!\n"
fi
}


Код:
kill_process() {
if [ "`ps -ef | grep hlds_ | grep -v hlds_run | grep ${hlds_ip} | grep ${hlds_port} | grep -v grep | wc -l`" -gt 0 ]; then
printf "${title} Kill: `ps -ef | grep SCREEN | grep ${screen_name} | grep ${hlds_ip} | grep ${hlds_port} | grep -v grep`\n"
${start1} kill -9 "`ps -ef | grep SCREEN | grep ${screen_name} | grep ${hlds_ip} | grep ${hlds_port} | grep -v grep | awk '{print $2}'`"
${start1} rm -f ${path}/${hlds_pid}
else
printf "${title}${txtylw} Cannot kill hlds process of ${server_name} server\n"
fi
}


Опции команды "restart"
Код:
restart)
stop
kill_process
sleep 2
start
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: