debian — команда остановки экрана из PHP не останавливает реальный процесс

Следующая схема работает как чудо в моем vagrantbox под Debian, но не работает должным образом на производстве под FreeBSD.

1) Я выполняю команду symfony через консоль: php my:command start, Работает my:daemon команда изнутри, обернутая в экран следующим образом: cd ~/path && screen -dmS mydaemon php bin/console my:daemonи это работает хорошо.

2) Когда эта команда запущена, она выполняет еще 3 команды на экране, как screen -dmS myworkerX php bin/console my:worker --id=X и это тоже хорошо работает.

Для вашего понимания, как это выглядит в дереве процессов:

 - screen -dmS mydaemon php bin/console my:daemon
- php bin/console my:daemon
- screen -dmS myworker1 php bin/console my:worker --id=1
- php bin/console my:worker --id=1
- screen -dmS myworker2 php bin/console my:worker --id=2
- php bin/console my:worker --id=2
- screen -dmS myworker3 php bin/console my:worker --id=3
- php bin/console my:worker --id=3

Результат экранной команды показан ниже:

$ screen -list
There are screens on:
16362.mydaemon  (Detached)
16372.myworker1 (Detached)
16378.myworker2 (Detached)
16384.myworker3 (Detached)

На данный момент все отлично работает как на FreeBSD, так и на Debian. Проблема в моем сценарии остановки. я бегу php bin/console my:daemon stopи это вызывает screen -S screenName -X quit Команда для каждого из всех используемых идентификаторов экрана: mydaemon, myworker1, myworker2, myworker3. Обычно, когда процесс переноса экрана останавливается, он убивает фактический процесс, выполняющийся внутри. Под Debian это правда. А во FreeBSD он останавливает процесс экрана, но оставляя внутренний процесс php нетронутым. Так screen -list команда показывает пустой список, но ps aux | grep my:worker говорит, что все процессы продолжают работать в фоновом режиме.

Я хотел бы спросить, кто-нибудь может предположить, где разница между поведением screen команда на этих операционных системах?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]