| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия |
| debian:start:run-with-nohup [2017/06/04 23:12] – mirocow | debian:start:run-with-nohup [2019/12/09 20:13] (текущий) – mirocow |
|---|
| {{tag>php service nohup init.d init}} | {{tag>debian remove systemd sysv system init}} |
| |
| ====== Запуск PHP скрипта с использованием nohup ====== | ====== Запуск PHP скрипта с использованием nohup ====== |
| ===== Debian / Ubuntu ===== | ===== Debian / Ubuntu ===== |
| |
| ==== UNIX System V ==== | ==== sysv-init ==== |
| |
| nano /etc/init.d/price_parser \\ | nano /etc/init.d/price_parser \\ |
| </code> | </code> |
| |
| | ==== Upstart ==== |
| | |
| | Умерла |
| ==== systemd ==== | ==== systemd ==== |
| | |
| | * [[https://community.vscale.io/hc/ru/community/posts/211805669-%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B2-systemd-%D0%A1%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D1%8B-%D1%8E%D0%BD%D0%B8%D1%82%D1%8B|Введение в systemd. Сервисы, юниты]] |
| | * https://habrahabr.ru/post/275645/ |
| | * http://pikabu.ru/story/systemd_dlya_samyikh_malenkikh_chast_i_znakomstvo_4285483 |
| | * [[https://wiki.archlinux.org/index.php/Systemd_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)]] |
| | * [[debian:remove-systemd]] |
| | |
| | === Type === |
| | |
| | * Type=simple (по умолчанию): systemd предполагает, что служба будет запущена незамедлительно. Процесс при этом не должен разветвляться. Не используйте этот тип, если другие службы зависят от очередности при запуске данной службы. Исключение - активация сокета |
| | * Type=forking: systemd предполагает, что служба запускается однократно и процесс разветвляется с завершением родительского процесса. Используйте данный тип для запуска классических демонов за исключением тех случаев, когда, как вам известно, в таком поведении процесса нет необходимости. Вам следует также определить PIDFile=, чтобы systemd могла отслеживать основной процесс |
| | * Type=oneshot: полезен для скриптов, которые выполняют одно задание и завершаются. Вам может понадобиться также установить параметр RemainAfterExit=yes, чтобы systemd по-прежнему считала процесс активным, даже после его завершения |
| | * Type=notify: идентичен параметру Type=simple, но с той оговоркой, что демон пошлет systemd сигнал о своей готовности. Эталонная реализация данного уведомления представлена в libsystemd-daemon.so |
| | * Type=dbus: сервис считается находящимся в состоянии готовности, когда определенное BusName появляется в системной шине DBus |
| | * Type=idle: systemd will delay execution of the service binary until all jobs are dispatched. Кроме того, поведение очень похоже на Type=simple. |
| | |
| | === Расположения === |
| | |
| | * /usr/lib/systemd/system - системные юниты, поставляемые обычно вместе с приложениями; |
| | * /run/systemd/system - динамически создаваемые юниты (т.е. на лету); |
| | * /etc/systemd/system - юниты и исправления, внесённые администратором |
| | |
| | === Запуск === |
| | |
| | * service yii-some-listen status |
| | * service yii-some-listen stop |
| | * service yii-some-listen start |
| | * service yii-some-listen restart |
| | |
| | === Пример === |
| |
| nano /etc/systemd/system/yii-some-listen.service | nano /etc/systemd/system/yii-some-listen.service |
| PIDFile=/var/run/yii-some-listen.pid | PIDFile=/var/run/yii-some-listen.pid |
| WorkingDirectory=/home/some/path/to/app | WorkingDirectory=/home/some/path/to/app |
| ExecStart=/usr/bin/php /home/some/path/to/app/yii some/cotroller/action start >/dev/null 2>&1 | ExecStart=nohup /usr/bin/php /home/some/path/to/app/yii some/cotroller/action start >/dev/null 2>&1 |
| ExecStop=/usr/bin/php /home/some/path/to/app/yii some/cotroller/action stop >/dev/null 2>&1 | ExecStop=/usr/bin/php /home/some/path/to/app/yii some/cotroller/action stop >/dev/null 2>&1 |
| #Restart=always | #Restart=always |
| Alias=yii-some-listen.service | Alias=yii-some-listen.service |
| </code> | </code> |
| | |
| | Or usep PID file |
| | |
| | nano /etc/systemd/system/yii-some-listen.service |
| | <code bash> |
| | [Unit] |
| | Description=Yii some-listen |
| | After=mysql.service apache2.service |
| | Requires= |
| | |
| | [Service] |
| | PIDFile=/var/run/yii-some-listen.pid |
| | WorkingDirectory=/home/some/path/to/app |
| | ExecStart=nohup /usr/bin/php /home/some/path/to/app/yii some/cotroller/action start >/dev/null 2>&1 |
| | ExecStop=pkill -9 -F /var/run/yii-some-listen.pid |
| | #Restart=always |
| | #RestartSec=5 |
| | RemainAfterExit=yes |
| | User=user |
| | Group=www-data |
| | |
| | [Install] |
| | WantedBy=multi-user.target |
| | Alias=yii-some-listen.service |
| | </code> |
| | ==== Mudar ==== |
| | |
| | ==== Epoch ==== |
| |
| |