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

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

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

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

Скрипт остановки сервера

trollface
сообщение 20.6.2014, 19:15
Сообщение #1
Стаж: 12 лет

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

Всем привет.

Вопрос к линуксойдам, а конкретнее к Fire и таким же гуру как он;)

Подскажите, пожалуйста, как убить сервер на билде 6027/6132 ?

Сейчас такое:
Код
function stop
{
  if ! status; then echo "$SCREEN_NAME could not be found. Probably not running."; exit 1; fi

  screen -p 0 -S $SCREEN_NAME -X eval 'stuff "quit"\015'
}

Если просто остановить то все ок, а если перезапускать:
Код
  restart)
    echo "Restarting $SCREEN_NAME..."
    stop
    sleep 5
    start
    sleep 5
    echo "$SCREEN_NAME restarted successfully"
;;

то сервер запускается, но помимо него висит еще старый который как бы и перезапустился, но и второй раз запустился ={
в итоге получаем ERROR, что порт занят и бла бла бла.
тот, который перезапустился запускается в без screen сессии и к нему нереально получить доступ, только
Код
killall hlds_linux && killall hlds_run

помогает, но вариант УГ sad.gif

ps.gif hlds_run правленый, убран перезапуск при вводе quit
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   Цитировать сообщение
Статус пользователя onotole
сообщение 20.6.2014, 19:59
Сообщение #2


Иконка группы

Стаж: 13 лет

Сообщений: 1572
Благодарностей: 1119
Полезность: 1550

Меценат Меценат

Цитата(trollface @ 20.6.2014, 20:15) *
Всем привет.

Вопрос к линуксойдам, а конкретнее к Fire и таким же гуру как он;)

Подскажите, пожалуйста, как убить сервер на билде 6027/6132 ?

Сейчас такое:
Код
function stop
{
  if ! status; then echo "$SCREEN_NAME could not be found. Probably not running."; exit 1; fi

  screen -p 0 -S $SCREEN_NAME -X eval 'stuff "quit"\015'
}

Если просто остановить то все ок, а если перезапускать:
Код
  restart)
    echo "Restarting $SCREEN_NAME..."
    stop
    sleep 5
    start
    sleep 5
    echo "$SCREEN_NAME restarted successfully"
;;

то сервер запускается, но помимо него висит еще старый который как бы и перезапустился, но и второй раз запустился ={
в итоге получаем ERROR, что порт занят и бла бла бла.
тот, который перезапустился запускается в без screen сессии и к нему нереально получить доступ, только
Код
killall hlds_linux && killall hlds_run

помогает, но вариант УГ sad.gif

ps.gif hlds_run правленый, убран перезапуск при вводе quit

Сколько держал сервера на машинах, всегда убивал процесс, и никаких проблем.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
trollface
сообщение 20.6.2014, 20:11
Сообщение #3
Стаж: 12 лет

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

onotole,
каким образом?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Fire
сообщение 20.6.2014, 20:39
Сообщение #4


Иконка группы

Стаж: 17 лет

Сообщений: 2201
Благодарностей: 2227
Полезность: 963

Цитата(trollface @ 20.6.2014, 20:15) *
Сейчас такое:
Код
function stop
{
  if ! status; then echo "$SCREEN_NAME could not be found. Probably not running."; exit 1; fi

  screen -p 0 -S $SCREEN_NAME -X eval 'stuff "quit"\015'
}


Код
function stop
{
  if ! status; then echo "$SCREEN_NAME could not be found. Probably not running."; exit 1; fi

  screen -p 0 -S $SCREEN_NAME -X eval 'stuff "quit"\015'
  sleep 1;
  kill -9 `screen -list | grep "$SCREEN_NAME" | awk {'print $1'} | cut -d . -f1`
}


Попробуй так.


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
trollface
сообщение 20.6.2014, 20:49
Сообщение #5
Стаж: 12 лет

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

Fire,
Код
[root@troll ~]# service hlds restart
Restarting test...
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
test is already running
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Fire
сообщение 20.6.2014, 20:54
Сообщение #6


Иконка группы

Стаж: 17 лет

Сообщений: 2201
Благодарностей: 2227
Полезность: 963

в аську напиши, поглядим


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя onotole
сообщение 20.6.2014, 20:55
Сообщение #7


Иконка группы

Стаж: 13 лет

Сообщений: 1572
Благодарностей: 1119
Полезность: 1550

Меценат Меценат

Цитата(trollface @ 20.6.2014, 21:11) *
onotole,
каким образом?

Код
kill `ps -ef | grep SCREEN | grep SCREENNAME | grep -v grep | awk '{print $2}' | head -1`
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
trollface
сообщение 20.6.2014, 22:03
Сообщение #8
Стаж: 12 лет

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

Решено!
Код
function stop {
  if ! status; then echo "$SCREEN_NAME could not be found. Probably not running."; exit 1; fi

  screen -p 0 -S $SCREEN_NAME -X eval 'stuff "quit"\015'
  sleep 1
  if status; then killproc; fi
}

function killproc {
  kill -9 `ps -ef | grep SCREEN | grep "$SCREEN_NAME" | grep -v grep | awk '{ print $2}'`
  screen -wipe > /dev/null
}

Тему офф;)

Отредактировал: trollface, - 20.6.2014, 22:04
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: