У меня есть два веб-сайта, использующих фреймворк Laravel. Мне нужно использовать команду для обработки очередей. Для этого я использую nohup.
Однако мне нужно запустить две одинаковые команды nohup, чтобы они работали в фоновом режиме для двух разных сайтов. Проблема в том, что иногда мне нужно остановить только одну команду для обслуживания. Как определить, какая команда nohup принадлежит определенному веб-сайту? Могу ли я использовать идентификатор имени в команде nohup?
Вы могли бы использовать PHP -E
Аргумент cli, который позволяет вам указать код для выполнения «после» завершения остальной части скрипта, и этот дополнительный код может быть просто комментарием PHP, позволяющим встраивать информацию идентификатора:
sudo nohup php -E '//job #x' artisan etc...
^^^^^^^^---raw php code, no <?..?> required
Поскольку это всего лишь комментарий, он на самом деле ничего не делает, и вы можете отформатировать комментарий так, чтобы он содержал любую идентификационную информацию, которую вы хотите.
колдунья $!
Вы можете получить PID последнего фонового процесса. Сохраните его в файл как echo $! > processA.pid
и затем используйте этот PID, чтобы остановить нужный процесс.