Есть у меня один скрипт, который принимает со станции сообщения, парсит их в грузит в БД. Грузил его тупо с &. Потом научил форкаться, генерить pid, проверять не работает ли он уже запущенный ранее. Всё классно. Но надо бы загружать после включения/перезагрузки сервака сразу автоматом, а не вручную. Хотел было сделать классической загрузкой, но тут думаю почему бы не попробовать апстартом.
Сказано — сделано.
Прилинковал стаб в /etc/init.d, создал простенький конфиг в /etc/init…
И теперь офигеваю. Скрипт запущен (предыдущим путём). Спрашиваю статус — нет, говорит.
Ок.
Прошу запустить — запускает. А как контролирует-то? Смотрю логи и ps — никак не контролирует. Вторая реинкарнация проверила что жива предыдущая и завершила работу. Кроме того скрипт у меня форкается и поэтому живёт с другим пидом, чем тот под которым запускался. И что говорит upstart? А он говорит что скрипт жив, но указывает тот пид, под которым он его попытался запустить. Запустить (ещё раз)? Говорит "низзя", потому что уже запущен.
Ок, молодец, типа контролирует.
Остановить…………… не дождался. Что за чёрт? Вчера кажется останавливал (типа) сразу. Что-то делаю не так, или что-то забыл?
Вопрос. Если upstart помнит укакого демона какой задачи какой пид, то где он это хранит, зараза? Мануалы молчат, гугль тоже.
Прибил команду, смотрю статус: stop/killed, process 27944
Как это?
Если попытаться запустить, то снова висит. Жму ^C
Снова запускаю: "initctl: Job is already running
Статус тот же.
Попросить остановить - висит.
^C и снова остановить — говорит initctl: Job has already been stopped
Это песня какая-то. :)
Придётся, наверно, писать старые-добрые инитовые скрипты. :)
Сказано — сделано.
Прилинковал стаб в /etc/init.d, создал простенький конфиг в /etc/init…
И теперь офигеваю. Скрипт запущен (предыдущим путём). Спрашиваю статус — нет, говорит.
Ок.
Прошу запустить — запускает. А как контролирует-то? Смотрю логи и ps — никак не контролирует. Вторая реинкарнация проверила что жива предыдущая и завершила работу. Кроме того скрипт у меня форкается и поэтому живёт с другим пидом, чем тот под которым запускался. И что говорит upstart? А он говорит что скрипт жив, но указывает тот пид, под которым он его попытался запустить. Запустить (ещё раз)? Говорит "низзя", потому что уже запущен.
Ок, молодец, типа контролирует.
Остановить…………… не дождался. Что за чёрт? Вчера кажется останавливал (типа) сразу. Что-то делаю не так, или что-то забыл?
Вопрос. Если upstart помнит у
Прибил команду, смотрю статус: stop/killed, process 27944
Как это?
Если попытаться запустить, то снова висит. Жму ^C
Снова запускаю: "initctl: Job is already running
Статус тот же.
Попросить остановить - висит.
^C и снова остановить — говорит initctl: Job has already been stopped
Это песня какая-то. :)
Придётся, наверно, писать старые-добрые инитовые скрипты. :)