Bug 28086

Summary: spawn-fcgi: Необходимо обеспечить совместимость службы с systemd
Product: Sisyphus Reporter: Mike <amike>
Component: spawn-fcgiAssignee: Anton Farygin <rider>
Status: CLOSED WONTFIX QA Contact: qa-sisyphus
Severity: normal    
Priority: P3 CC: berkut_174, evg, lav, rider
Version: unstable   
Hardware: all   
OS: Linux   
URL: http://www.altlinux.org/Systemd_Status_P7
Bug Depends on:    
Bug Blocks: 28008    

Description Mike 2012-11-21 16:17:09 MSK
Подготовить корректный unit-файл.

Подробности по ссылке: http://www.altlinux.org/Systemd_Status_P7
Comment 1 Evgenii Terechkov 2015-07-02 10:24:48 MSK
Надо сделать по меньшей мере

=8<===================================================
--- a/rc.d/init.d/spawn-fcgi
+++ b/rc.d/init.d/spawn-fcgi
@@ -6,7 +6,7 @@
 # description: Spawn a fcgi processes
 # processname: /usr/bin/spawn-fcgi
 # config: /etc/sysconfig/spawn-fcgi
-# pidfile: /var/run/spawn-fcgi.pid
+# pidfile: /var/run/spawn-fcgi/spw-cgi.pid
 =8<===================================================

чтобы запускалось под systemd.

rider: ping?
Comment 2 Evgenii Terechkov 2015-07-02 11:14:59 MSK
Хотя наверное лучше

=8<===================================================
--- a/rc.d/init.d/spawn-fcgi
+++ b/rc.d/init.d/spawn-fcgi
@@ -13,7 +13,7 @@ WITHOUT_RC_COMPAT=1
 # Source function library.
 . /etc/init.d/functions
 
-PIDFILE=/var/run/spawn-fcgi/spw-cgi.pid
+PIDFILE=/var/run/spawn-fcgi.pid
 SOCKET=/var/run/spawn-fcgi/spw-cgi.sock
 
 LOCKFILE=/var/lock/subsys/spawn-fcgi
=8<===================================================

потому что /var/run/spawn-fcgi никто не создаёт.
Comment 3 Anton Farygin 2015-07-02 14:07:31 MSK
Женя, твои последние два комментария ровно противоположны друг другу.

В смысле - сейчас в пакете:
$ fgrep '# pidfile' /etc/init.d/spawn-fcgi 
# pidfile: /var/run/spawn-fcgi.pid
Comment 4 Evgenii Terechkov 2015-07-02 15:02:48 MSK
Первый комментарий ошибочный, конечно.

Сейчас пакет из коробки не запускается под systemd потому что а) никто не создаёт каталог /var/run/spawn-fcgi б) даже если создать такой каталог, pidfile в заголовке LSB не совпадает с фактически создаваемым, поэтому при старте сервиса systemd долго (я не дождался таймаута) ждет его появления.

Проще всего отказаться от создания каталога /var/run/spawn-fcgi и указать в переменной PIDFILE тот же путь, что и в заголовке LSB. Что и обозначено во втором комментарии.
Comment 5 Anton Farygin 2015-07-02 15:35:41 MSK
Ок, сделаю.
Comment 6 Anton Farygin 2015-07-02 17:30:37 MSK
не всё так просто - ещё же есть сокет, который кладётся в /var/run/spawn-fcgi/
поэтому /var/run/spawn-fcgi будем создавать, дабы не ломать существующие конфигурации.
Comment 7 Evgenii Terechkov 2016-01-08 22:02:46 MSK
ping?
Comment 8 Anton Farygin 2018-11-13 19:35:20 MSK
Совместимость spawn-fcgi с systemd не нужна, fcgiwrap делаёт всё за него сам. 
systemctl start fcgiwrap.
Аналогично нужно писать сервисы для тех служб, которые хотелось запускать в systemd окружении через spawn-fcgi
Comment 9 Vitaly Lipatov 2019-01-29 19:10:01 MSK
(В ответ на комментарий №8)
> Совместимость spawn-fcgi с systemd не нужна, fcgiwrap делаёт всё за него сам. 
> systemctl start fcgiwrap.
> Аналогично нужно писать сервисы для тех служб, которые хотелось запускать в
> systemd окружении через spawn-fcgi
Звучит странно. Вот у меня spawn-fcgi запускает /usr/sbin/rt-server.fcgi, как предлагается в инструкции к request-tracker.
В итоге spawn-fcgi не работает сейчас с sysvinit (не может найти запущенный процесс из-за подмены в /proc/NUM/exe), и через systemd не запустить, потому что unit-файла нет.
Comment 10 Anton Farygin 2019-01-29 21:38:19 MSK
ну напиши юнит для своего /usr/sbin/rt-server.fcgi
Посмотри на примеры в пакете fcgiwrap.