Lexus
@ 04-10-2006, 00:16
Имеется линукс Debian 3.1
есть скрипт, start.sh он запускает прожку(ET -server)
Стартует весь процес через скрин
типа так: "screen -A -m -d -S et /games/et/./etded"
Задача:
1. запихать в автозагрузку, т.е. при рестарте линукса скрипт должен стартовать автоматом.
2. при помирании процесса, он должен автоматом рестартоваться, причём так же через скрин.
jinrou
@ 04-10-2006, 17:42
Lexus
Первое - это просто, положи свой скрипт в /etc/rcS.d и дай номер что нить вроде
S80мой_скрипт. Подробнее о нумерации написано в README в том же каталоге.
Второе - написать скрипт, который будет проверять наличие данного процесса и при его отсутствии запускать тот же /etc/rcS.d/S80мой_скрипт, после чего запихнуть его в crontab.
jinrou,
вообще я-бы советовал запуск вписать просто в /etc/rc.local
Более правильное место, как мне кажется.
А вот по поводу перезапуска... ну тут есть разные способы... на самом деле основной вопрос, которыей стоит - надо-ли запускать новый скрин? Скорее всего падать-то будет сервер, а скрин будет оставаться... Зачем плодить скрины?
Lexus
@ 04-10-2006, 18:24
QUOTE (FiL @ 04-10-2006, 17:13) |
jinrou, вообще я-бы советовал запуск вписать просто в /etc/rc.local Более правильное место, как мне кажется.
А вот по поводу перезапуска... ну тут есть разные способы... на самом деле основной вопрос, которыей стоит - надо-ли запускать новый скрин? Скорее всего падать-то будет сервер, а скрин будет оставаться... Зачем плодить скрины? |
Дело в том, что если в игре через админ консоль рестартуют сервак, то заходя через ssh обнаруживатся что срина нету, следовательно скрин убивается тоже.
т.е. задача: либо придумать перезапуск, либо придумать как сделать чтоб скрин не убивался и сервер рестартовал нормально.
jinrou
@ 04-10-2006, 18:30
QUOTE (FiL @ 04-10-2006, 19:13) |
jinrou, вообще я-бы советовал запуск вписать просто в /etc/rc.local Более правильное место, как мне кажется.
|
FiL
можно и в rc.local, только вот нету его в Debian.
QUOTE |
0.6 Похоже, что Debian не использует для настройки процесса загрузки rc.local; как поддерживается эта функция?
Допустим, системе нужно выполнять сценарий foo при загрузке, или при переключении в какой-либо уровень запуска (System V). В этом случае действия системного администратора такие:
* Поместить сценарий foo в каталог /etc/init.d/.
* Запустить команду Debian update-rc.d с состветствующими аргументами, чтобы установить связи между каталогами rc?.d и /etc/init.d/foo. Здесь '?' - это число от 0 до 6, соответсвующее одному из уровней запуска System V.
* Перегрузить систему.
Команда update-rc.d установит связи между каталогами rc?.d и /etc/init.d. Имя каждой связи начинается с букв 'S' или 'K', далее числа и имени сценария. Сценарии, начинающиеся с 'S' в каталоге /etc/rcN.d/, выполняются при входе в уровень запуска N. Сценарии, начинающиеся с 'K', выполняются при выходе с уровня запуска N.
Например, можно выполнять сценарий foo при загрузке, поместив его в /etc/init.d/ и установив необходимые связи командой update-rc.d foo defaults 19. Аргумент 'defaults' относится к уровням запуска со 2 по 5. Аргумент '19' позволяет запускать сценарий foo до сценариев с номерами 20 и выше. |
нда... недаром я не люблю Debian :)
Правда rcS.d судя по этому у него тоже нет (я вообще думал, что он только в слаквари есть). :)
Lexus,
а, ну тогда да, перезапускать вместе со скрином.
jinrou
@ 04-10-2006, 19:20
rcS.d у него есть, зуб даю :D
CODE |
kuruu@nk10-212:/$ cat /etc/debian_version
testing/unstable
kuruu@nk10-212:/$ ls /etc/ | grep rcS.d
rcS.d |