myDC.ru

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

 
 
Ответить в данную темуНачать новую тему

> [BASH] Старт/Стоп/Перезапуск и пр.

ShadoWx
сообщение 1.8.2011, 13:42
Сообщение #1


Освоившийся участник
*****

Группа: Пользователи
Сообщений: 216
Регистрация: 23.10.2008
Из: Саратов
Пользователь №: 865
Спасибо сказали: 59 раз




Предлагаю скрипт запуска, остановки и перезапуска rushub'a:
Не забудьте изменить параметры скрипта: директории и пути.

Просмотр кода bash
Код
#!/bin/sh

### BEGIN INIT INFO
# Provides:          rushub
# Required-Start:    $network
# Required-Stop:     $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start daemon at boot time
# Description:       Enable service provided by rushub.
### END INIT INFO

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

NAME="RusHub"
PATH_DAEMON="/home/shadowx/rushub_bin"
DAEMON="$PATH_DAEMON/$NAME"
PATH_DAEMON_CFG="$PATH_DAEMON/RusHub.xml"
PIDF="$PATH_DAEMON/rushub.pid"

ARGS="-c $PATH_DAEMON_CFG"

USER="shadowx"

start() {
    echo -n "Запуск $NAME: "
    start-stop-daemon --start --chuid $USER --make-pidfile "$PIDF" --pidfile "$PIDF" --name $NAME --background --startas $DAEMON -- $ARGS
    echo "готово."
}
stop() {
    echo -n "Остановка $NAME: "
    start-stop-daemon --chuid $USER --stop --pidfile "$PIDF" --name $NAME --retry=TERM/5/KILL/10
    rm "$PIDF"
    echo "готово."
}
restart() {
    stop
    sleep 2
    start
}

if [ ! -x "$DAEMON" ]
then
   echo "отсутствует файл для запуска $DAEMON"
   exit 0
fi

case "$1" in
    start)
        start
;;
    stop)
        stop
;;
    restart)
        restart
;;
    status)
        if [ -f "$PIDF" ];
        then
            PID=$(cat $PIDF)
            if [ `ps auwx|grep $NAME|grep $PID|grep -v -c grep` = 1 ]
            then
                echo "процесс $NAME работает [pid: $PID]."
                exit 0
            fi
            echo "процесс $NAME не запущен."
            exit 3
        fi
        echo "процесс $NAME не запущен."
        exit 3
;;
    *)
        echo "Использование {start|status|stop|restart}"
        exit 1
;;
esac
exit 0


Спасибо сказали:
Go to the top of the page
+Quote Post
CrazyKiller
сообщение 1.8.2011, 20:15
Сообщение #2


Продвинутый участник
****

Группа: Пользователи
Сообщений: 189
Регистрация: 20.4.2009
Пользователь №: 3 121
Спасибо сказали: 10 раз




Случаем не со Skeleta делали ?

Усе ровно отлично, гуд, так держать ! big_smile.gif
Go to the top of the page
+Quote Post
ShadoWx
сообщение 1.8.2011, 20:26
Сообщение #3


Освоившийся участник
*****

Группа: Пользователи
Сообщений: 216
Регистрация: 23.10.2008
Из: Саратов
Пользователь №: 865
Спасибо сказали: 59 раз




в интернете почитал про баш с примерами и пр. и навело на мысль а почему бы и нет ? .... вот пользуйтесь ..
Go to the top of the page
+Quote Post
CrazyKiller
сообщение 1.8.2011, 20:45
Сообщение #4


Продвинутый участник
****

Группа: Пользователи
Сообщений: 189
Регистрация: 20.4.2009
Пользователь №: 3 121
Спасибо сказали: 10 раз




Не Могу понять чуток !
Скрипт от Рута или от пользователя будет запускаться ?
Go to the top of the page
+Quote Post
ShadoWx
сообщение 1.8.2011, 20:53
Сообщение #5


Освоившийся участник
*****

Группа: Пользователи
Сообщений: 216
Регистрация: 23.10.2008
Из: Саратов
Пользователь №: 865
Спасибо сказали: 59 раз




Цитата(CrazyKiller @ 1.8.2011, 21:45) *
Не Могу понять чуток !
Скрипт от Рута или от пользователя будет запускаться ?


назови скрипт rushub и положи в директорию:
Код
/etc/init.d/


и да от рута .....
Go to the top of the page
+Quote Post
CrazyKiller
сообщение 1.8.2011, 20:57
Сообщение #6


Продвинутый участник
****

Группа: Пользователи
Сообщений: 189
Регистрация: 20.4.2009
Пользователь №: 3 121
Спасибо сказали: 10 раз




Цитата(ShadoWx @ 1.8.2011, 21:53) *
назови скрипт rushub и положи в директорию:
Код
/etc/init.d/


и да от рута .....


это плоха что от рута !
Береги систему !

su USER -c "ПУТЬ/ПУТЬ/RusHub -d"

Используй такие строки !

Заменяя USER = на своего юзера системы при котором будет производится запуск !
ну путь это и так понятно ! big_smile.gif
Go to the top of the page
+Quote Post
ShadoWx
сообщение 1.8.2011, 20:57
Сообщение #7


Освоившийся участник
*****

Группа: Пользователи
Сообщений: 216
Регистрация: 23.10.2008
Из: Саратов
Пользователь №: 865
Спасибо сказали: 59 раз




запуск скрипта у меня не от рута ...извини напутал ..с тренировки пришел ...

у меня хаб вертится на отдельном юзвере ))
Go to the top of the page
+Quote Post
mariner
сообщение 1.8.2011, 21:44
Сообщение #8


Местная ТехПоддержка
**********

Группа: Администраторы
Сообщений: 1 874
Регистрация: 18.7.2008
Из: Моск. Обл, г. королев, район Болшево
Пользователь №: 221
Спасибо сказали: 220 раз




Перенесено в техвопросы
Go to the top of the page
+Quote Post
Saymon21
сообщение 2.8.2011, 2:04
Сообщение #9


Site Reliability Engineer
*********

Группа: Модераторы
Сообщений: 1 772
Регистрация: 27.6.2009
Из: Чувашия, г. Чебоксары
Пользователь №: 3 719
Спасибо сказали: 479 раз




а ulimit -n забыто тоже? Ведь таки получается, запускаем хаб на онлайн < 1020
Go to the top of the page
+Quote Post
Saymon21
сообщение 2.8.2011, 23:53
Сообщение #10


Site Reliability Engineer
*********

Группа: Модераторы
Сообщений: 1 772
Регистрация: 27.6.2009
Из: Чувашия, г. Чебоксары
Пользователь №: 3 719
Спасибо сказали: 479 раз




Если кого мучает паранойа: "аааАА, упадёт хаб чо делать" - шлите репорты о падениях, а с моментом "авто"-перезапуска хаба есть вариант:

Код
#!/bin/sh
RESTART="service rushub start"
PGREP="/usr/bin/pgrep"
SERVICENAME="RusHub"
$PGREP ${SERVICENAME}
if [ $? -ne 0 ]
then
$RESTART
fi

Осталось только запихнуть задачу в крон и переодически дёргать скрипт. Но это уж сами. ;)
Да, 777 не нужно!!!! chmod +x
Кстати, любителям информативностей и т.п, можно перед $RESTART добавить echo "\n$(date) dcserver rushub was restarted" | mail -s rushub vasya_pupkin@yandex.ru
Go to the top of the page
+Quote Post
CrazyKiller
сообщение 3.8.2011, 13:02
Сообщение #11


Продвинутый участник
****

Группа: Пользователи
Сообщений: 189
Регистрация: 20.4.2009
Пользователь №: 3 121
Спасибо сказали: 10 раз




хыхы, у меня на УТФ-8 через пути Кракозяблы в данном скрипте ! big_smile.gif

К скрипту проверки !
А если так !

Код
#!/bin/sh

PROCESS_COUNT=$(ps -fu root | grep RusHub | grep -v grep | wc -l)
case $PROCESS_COUNT in
0) /path/to/RusHub -d
;;
1) #OK, программа уже выполняется
;;
*) #OK, запущено несколько экземпляров программы
;;
esac


и к нему Крон !

Код
*/1 * * * * /path/to/RusHub/checkrushub.sh >/dev/null 2>&1


Через каждый 1 час будет проверять, есть ли процесс или нет, если нет то включит !
Go to the top of the page
+Quote Post
ShadoWx
сообщение 4.8.2011, 23:30
Сообщение #12


Освоившийся участник
*****

Группа: Пользователи
Сообщений: 216
Регистрация: 23.10.2008
Из: Саратов
Пользователь №: 865
Спасибо сказали: 59 раз




кто возьмется за финальный вид скрипта ?) после всего того что обсудили и сделали?)
или мы все коварные super_man.gif

думается мне было бы замечательно этот скрипт в исходники русхаба ..в папочку дебиан поместить ...
Go to the top of the page
+Quote Post
mariner
сообщение 4.8.2011, 23:35
Сообщение #13


Местная ТехПоддержка
**********

Группа: Администраторы
Сообщений: 1 874
Регистрация: 18.7.2008
Из: Моск. Обл, г. королев, район Болшево
Пользователь №: 221
Спасибо сказали: 220 раз




ручки прочь от исходников. В них и так все, что нужно. И это не проблема разработчика, писать инит-скрипты. Их должен писать сборщик.
Go to the top of the page
+Quote Post
ShadoWx
сообщение 4.8.2011, 23:36
Сообщение #14


Освоившийся участник
*****

Группа: Пользователи
Сообщений: 216
Регистрация: 23.10.2008
Из: Саратов
Пользователь №: 865
Спасибо сказали: 59 раз




Цитата(mariner @ 5.8.2011, 0:35) *
ручки прочь от исходников. В них и так все, что нужно. И это не проблема разработчика, писать инит-скрипты. Их должен писать сборщик.


ну так мы же за развитие русхаба в массах =)
Go to the top of the page
+Quote Post
mariner
сообщение 4.8.2011, 23:44
Сообщение #15


Местная ТехПоддержка
**********

Группа: Администраторы
Сообщений: 1 874
Регистрация: 18.7.2008
Из: Моск. Обл, г. королев, район Болшево
Пользователь №: 221
Спасибо сказали: 220 раз




Цитата
ну так мы же за развитие русхаба в массах =)

Ну так собирай пакеты, а не суй мусор в сурцы
Go to the top of the page
+Quote Post
KT315
сообщение 5.8.2011, 13:41
Сообщение #16


Продвинутый участник
****

Группа: Пользователи
Сообщений: 113
Регистрация: 20.1.2009
Из: г. Москва САО
Пользователь №: 1 889
Спасибо сказали: 37 раз




Цитата(Saymon21 @ 2.8.2011, 3:04) *
а ulimit -n забыто тоже? Ведь таки получается, запускаем хаб на онлайн < 1020


И правильно сделано, кстати. Лимиты надо настраивать в /etc/security/limits.conf
Почему это оказалось в init? Да вот поэтому, но уже не актуально.


Спасибо сказали:
Go to the top of the page
+Quote Post

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

Collapse

> Похожие темы

  Тема Ответов Автор Просмотров Последнее сообщение
No new Как вызвать bash скрипт из Lua
14 Iskandark 8 764 3.3.2015, 12:42 Посл. сообщение: Iskandark
No New Posts Topic has attachmentsptokax install source BASH Script
Скрипт позволяет компилировать из исходников PtokaX и производить пред
6 DEN 007 7 301 3.5.2013, 7:24 Посл. сообщение: Sinsei
No New Posts Перезапуск по таймеру
3 ShadoWx 4 120 23.2.2012, 14:57 Посл. сообщение: SKIFI
Moved [BASH] Старт/Стоп/Перезапуск и пр.
0 ShadoWx 0 1.8.2011, 21:44 Посл. сообщение: mariner
No New Posts Перезапуск скрипта раз в минуту
7 lankmv 6 987 13.11.2010, 3:11 Посл. сообщение: DEN 007
No New Posts Скрипт Стоп трепет
3 Lesh™ 4 198 17.10.2009, 8:26 Посл. сообщение: Alexey
No New Posts Стоп Хаб
6 morn 5 085 13.4.2009, 18:53 Посл. сообщение: morn
No New Posts Topic has attachmentsЦитирование Bash.org.ru
срочно нужен скрипт!
0 vibe 2 811 13.4.2009, 11:07 Посл. сообщение: vibe
No New Posts Перезапуск Скриптов
сриптик)
2 Ice 3 895 23.11.2008, 12:09 Посл. сообщение: Nickolya
No New Posts Переделка Скрипта " Цитаты С Bash.org " На Api1
6 Undertaker 6 493 31.10.2008, 7:35 Посл. сообщение: Nickolya

 



RSS Сейчас: 29.3.2020, 12:08