У меня есть несколько файлов PHP. Каждый из них запускает прослушиватель сокета или запускает бесконечный цикл. Сценарии останавливаются, когда выполняются через php
команда:
php sock_listener.php ...halt there
php listener2.php ... halt there
...
В настоящее время я использую screen
Команда, чтобы запустить все файлы PHP слушателя каждый раз, когда машина перезагружается. Есть ли способ, которым я могу запустить все файлы PHP слушателя в одной строке оболочки, чтобы я мог написать сценарий оболочки, чтобы сделать его проще в использовании?
Создайте отдельный сеанс экрана для первого сценария:
session='php-test'
screen -S "$session" -d -m -t A php a.php
где -d -m
комбинация приводит к тому, что экран создает отдельный сеанс.
Запустите остальные сценарии в одном сеансе в разных окнах:
screen -S "$session" -X screen -t B php b.php
screen -S "$session" -X screen -t C php c.php
где
-X
отправляет встроенный screen
команда на текущую сессию;-t
устанавливает заголовок окнаСессия будет доступна в выводе screen -ls
команда:
There is a screen on:
8951.php-test (Detached)
Подключитесь к сеансу, используя -r
вариант, например:
screen -r 8951.php-test
Перечислите окна в сеансе экрана с помощью Ctrl— " ярлык или windowlist -b
команда.
Менее удобный способ — отправить команды в фоновый режим, добавив амперсанд в конце каждой команды:
nohup php a.php 2>a.php.err >a.php.out &
nohup php b.php 2>b.php.err >b.php.out &
nohup php c.php 2>c.php.err >c.php.out &
где
nohup
предотвращает завершение команд, если пользователь выходит из оболочки. Читать этот урок для дополнительной информации;2>a.php.err
перенаправляет стандартную ошибку на a.php.err
файл;>a.php.out
перенаправляет стандартный вывод на a.php.out
файл.Есть ли способ, которым я могу запустить все файлы PHP слушателя в одной строке оболочки, чтобы я мог написать сценарий оболочки, чтобы сделать его проще в использовании?
Вы можете поместить вышеупомянутые команды в файл сценария оболочки, например:
#!/bin/bash -
# Put the commands here
сделать его исполняемым:
chmod +x /path/to/script
и звоните, когда вам это нужно:
/path/to/script
Изменить притон по мере необходимости.
Просто запустите их под цирк. Цирк позволит вам определить количество процессов и количество экземпляров, которые вы хотите запустить, и просто оставить их запущенными.
https://circus.readthedocs.io/en/latest/