- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Зачем быть уникальным в мире, где все можно скопировать
Почему так важна уникальность текста и как она влияет на SEO
Ingate Organic
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Приветствую!
Помогите решить задачку.
Через php (mod_php) необходимо запустить процесс в фоне, и так чтобы он не умирал при завершении родителя(в данном случае апача). Апач работает от пользователей так как настроен с mod_itk. У меня получается так что процесс запускается отлично и работат до тех пор пока апач не перезагрузить командой restart.
exec("./script > /dev/null 2>&1 &");
и так пробовал
exec("nohup ./script > /dev/null 2>&1 &");
у него есть опция запуска как демона, тоже не помогает
exec("./script daemon > /dev/null 2>&1 &");
(пробовал также всевозможные функции, типо proc_open)
В чём тут фишка, и как можно её обмануть. Или это абсолютно нормально что при завершении процесса родителя убиваются все дочерние процессы, и ничего сделать нельзя? :gm:
Поидее при завершении родителя у дочернего процесса родителем становитсья init(1).
Для работы в фоне процесс должен быть оформлен в виде демона.
Его нужно отсоединить от родительского процесса, что бы он не уничтожался при завершении родителя.
В программе на С это делается так.
ИШ ЧИВО ЗОДУМАЛ!
P.S. Используй для таких целей крон.
Его нужно отсоединить от родительского процесса, что бы он не уничтожался при завершении родителя.
Вообще-то nohup это все делает. Тут что-то сложнее. Либо недостаточно точно собраны исходные данные.
Dimanych, попробуйте с помощью ps выяснить кто там чей родитель, в какой группе и прочее.
ИШ ЧИВО ЗОДУМАЛ!
P.S. Используй для таких целей крон.
Запуск нужен мгновенный.
zexis, а этот механизм нельзя реализовать на шеле, например в init.sh ?
И получится ли это вообще если скрипт запускается не от суперюзера?
PS> сам скрипт уже скомпилирован и исходников у меня нет, так бы попробовал сделать эту вставку :)
Dimanych, ну попробуй selinux отключить
nohup только защищает от сигнала -HUP
Эти параметры PGID SID от скрипта принадлежат апачу, стоит процессу апача завершиться как скрипт отрубается,
щас копаю в сторону start-stop-daemon
Запуск нужен мгновенный.
zexis, а этот механизм нельзя реализовать на шеле, например в init.sh ?
И получится ли это вообще если скрипт запускается не от суперюзера?
PS> сам скрипт уже скомпилирован и исходников у меня нет, так бы попробовал сделать эту вставку :)
Запускай через at, но если это шаред - хостер тебя пристрелит и правильно сделает
Бери для таких целей vps
да какой уж там, дедики, только дедики :)
Вообщем уже сам допёр до at, других вариантов больше нигде не описывают.
Была ещё надежда на start-stop-daemon, но увы, это видимо только от суперюзера.
Результат именно тот что нужен был - скрипт живёт)
Всем спасибо за внимание ;)
А если попробовать запустить в screen?
Вроде бы пробовал, и писали где-то уже что не работает такое, только из консоли работает.