Portál AbcLinuxu, 12. května 2024 02:46


Dotaz: Systemd zabije Apache po skončení logrotate?

1.6.2018 13:55 Dave
Systemd zabije Apache po skončení logrotate?
Přečteno: 865×
Odpovědět | Admin
Mám SUSE Linux Enterprise Server 12.3, kde běží Apache (samostatně, ne jako systemd služba). Skoro každou noc se ale Apache zastaví. Došel jsem k tomu, že za to nejspíš může systemd ve spojení s logrotate - logy od Apache se rotují a v postrotate skriptu se Apache restartuje. Podle logů to vypadá, že logrotate proběhne korektně a Apache se skutečně správně restartuje, ale jakmile doběhne logrotate pro všechny ostatní logy, v tu chvíli Apache dostane SIGTERM a skončí. Obsah logrotate.timer a logrotate.service jsem nijak neupravoval. Poradíte, co s tím?

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

1.6.2018 14:11 1john2 | skóre: 35 | blog: jo12hn | zlín, brno
Rozbalit Rozbalit vše Re: Systemd zabije Apache po skončení logrotate?
Odpovědět | | Sbalit | Link | Blokovat | Admin
jsou spravne pristupova prava novych logsouboru vytvorenych pomoci logrotate?

hodily by se hlasky ze systemd/syslog
1.6.2018 14:59 Dave
Rozbalit Rozbalit vše Re: Systemd zabije Apache po skončení logrotate?
Přístupová práva souborů jsou v pořádku, po restartu pak Apache korektně několik desítek vteřin běží, ale jakmile doběhne logrotate pro všechny ostatní logy, dostane Apache SIGTERM. Takže si myslím, že to nějak souvisí se systemd, akorát přesně nevím jak... Úplně stejná konfigurace mi na starším systému se SysVinit běží bez problémů. Relevantní výpisy z logů připojuji, ten první SIGTERM je v pořádku (od restartu Apache logrotate službou), ten druhý SIGTERM už je navíc. logrotate.service skončí s návratovou hodnotou 0.
/var/log/messages:
2018-06-01T00:00:01.680529+02:00 as-01 systemd[1]: Starting Rotate log files...
...
2018-06-01T00:01:26.858558+02:00 as-01 systemd[1]: Started Rotate log files.

Apache error_log:
[Fri Jun 01 00:00:43.276760 2018] [mpm_prefork:notice] [pid 17021] AH00169: caught SIGTERM, shutting down
...
[Fri Jun 01 00:01:26.845630 2018] [mpm_prefork:notice] [pid 31292] AH00169: caught SIGTERM, shutting down
Max avatar 1.6.2018 14:45 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Systemd zabije Apache po skončení logrotate?
Odpovědět | | Sbalit | Link | Blokovat | Admin
kde běží Apache (samostatně, ne jako systemd služba)
Což znamená?
Zdar Max
Měl jsem sen ... :(
1.6.2018 15:49 Dave
Rozbalit Rozbalit vše Re: Systemd zabije Apache po skončení logrotate?
Což znamená, že běh Apache neřídí systemd, ale je spouštěn/restartován ručně vlastními skripty.
Max avatar 1.6.2018 19:09 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Systemd zabije Apache po skončení logrotate?
Tak pak je to jasný a michich bude mít recht.
Také se přikláním k dotazu, jaký to má důvod.
Zdar Max
Měl jsem sen ... :(
michich avatar 1.6.2018 17:23 michich | skóre: 51 | blog: ohrivane_parky
Rozbalit Rozbalit vše Re: Systemd zabije Apache po skončení logrotate?
Odpovědět | | Sbalit | Link | Blokovat | Admin
logy od Apache se rotují a v postrotate skriptu se Apache restartuje.
běh Apache neřídí systemd, ale je spouštěn/restartován ručně vlastními skripty.

Z toho usuzuji, že Apache ti pak běží v cgroupě patřící logrotate.service a tu systemd pozabíjí, jakmile hlavní proces služby logrotate skončí. Ověř to pomocí systemd-cgls nebo systemctl status $APACHE_PID.

Proč se vyhýbáš spouštění Apache v jeho vlastní systemd službě?

7.6.2018 06:50 x
Rozbalit Rozbalit vše Re: Systemd zabije Apache po skončení logrotate?
To uz Linux a jeho radoby vyvojari pokrocili tak daleko, ze uzivatel si se svym systemem nemuze delat co chce vcetne pousteni lokalnich sluzeb dle vlastniho vkusu a nejaka centralni autorita mu ji bez ptani proste zarizne? Navic skrze sluzbu pro logovani, ktera jako takova neni ani kriticka pro beh te sluzby? Jo tak to gratuluji v 21.stoleti k dohnani MS z 90.let :-D

Zlaty rc system.
Josef Kufner avatar 7.6.2018 10:16 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Systemd zabije Apache po skončení logrotate?
Ne, to jen konečně opravili, co nikdy pořádně nefungovalo.
Hello world ! Segmentation fault (core dumped)
Max avatar 7.6.2018 10:23 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Systemd zabije Apache po skončení logrotate?
Tvá připomínka je úplně mimo mísu. Tazatel na nějaké služby používá své skripty a zároveň řeší další věci standardníma automatizovanýma službama v rámci distribuce. Zřejmě nevhodným nastavením si zajistil, že mu jedna věc shazuje druhou. V tomto kontextu absolutně nechápu tvou připomínku. Nebo jen nerozumíš, jak funguje cgroups, systemd apod.?
Zdar Max
Měl jsem sen ... :(
7.6.2018 22:49 x
Rozbalit Rozbalit vše Re: Systemd zabije Apache po skončení logrotate?
Mno a pak jsou tady systemy, kde je mozne mit sve lokalni skripty, kombinovane se standardima a vsechno to spolu funguje a nic se navzajem neshazuje.
Max avatar 7.6.2018 23:57 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Systemd zabije Apache po skončení logrotate?
Stále nerozumím, o co ti jde. Pokud máš něco špatně nastaveno, tak to fungovat nebude, ať to máš jak chceš na jakémkoli systému.
Pokud narážíš na to, že současný systém je složitější, než býval, tak ok, ale jednak to vyjadřuješ docela špatnou formou a dále je třeba brát v potaz, že současný systém pokrývá mnoho dalších věcí, co dřívější systém nedával (ať už se bavíme o existenci systemd, nebo třeba i cgroups).
Zdar Max
Měl jsem sen ... :(
9.6.2018 11:02 Dave
Rozbalit Rozbalit vše Re: Systemd zabije Apache po skončení logrotate?
Díky za správné nakopnutí, nikdy by mě nenapadlo, že systemd bude defaultně zabíjet potomky procesu, který korektně skončil. Další důvod, proč toho molocha nemít rád. V rc systému to fungovalo bez problémů. Vyřešil jsem to přidáním řádku
KillMode=process
do /usr/lib/systemd/system/logrotate.service.
Josef Kufner avatar 9.6.2018 11:25 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Systemd zabije Apache po skončení logrotate?
To není řešení a někdy v budoucnu se budeš divit, co to dělá za hovadiny (a budeš na systemd nadávat ještě víc a dobře ti tak).

Podívej se jak systemd spouští služby a startuj Apache správně pomocí jeho vlastního unit (service) souboru. Pak bude Apache ve své cgroup a bude vše fungovat jak má.
Hello world ! Segmentation fault (core dumped)
9.6.2018 15:15 n
Rozbalit Rozbalit vše Re: Systemd zabije Apache po skončení logrotate?
Kdyz uz teda musis a skutecne ses rozhodl ignorovat rady abys to udelal poradne, alespon se nauc to oprasit spravne. Kdyz chces predelat chovani najake standardne v baliku dodavane sluzby, udelej ten override v /etc/systemd/system a ne tak, ze se budes hrabat v /usr/lib
Chytrex avatar 9.6.2018 21:24 Chytrex | skóre: 30 | Bohumín
Rozbalit Rozbalit vše Re: Systemd zabije Apache po skončení logrotate?
Pokud tím "pořádně" myslíš "bez systemd" (což by odpovídalo tomu jak to vidím já) tak o to se tazatel právě snaží ;)
Hrdý člen KERNEL ULTRAS .:. define QUESTION ((bb) || !(bb)) .:. Odmítám vaši realitu a nahrazuji ji svou vlastní..
9.6.2018 22:20 n
Rozbalit Rozbalit vše Re: Systemd zabije Apache po skončení logrotate?
Tazatel se to evidentne "bez systemd" oprasit nesnazi...

Ale kdyz uz jdes kolem, mas tam nejake konretni priklady toho, kde systemd je pricinou toho, ze se neco chova nepredikovatelne nebo chybne? To myslim naprosto vazne.

Ja mam za tech nekolik poslednich let, co ho denne pouzivam spolu se skutecne desuplnym "enterpise" systemem, ktery vyvijime a je nasazen na radove tisicich serveru po celem svete presne jednu zkusenost, kde ho muzu oznacit za problem. V tom konkretnim use-case zkratka nesouhlasim s nazorem Lennarta ze nas zpusob uziti je debilni. Debilni tedy je, ale "zakaznik to tak chce". Nebo presneji myslime si ze by mozna chtit mohl, nikdo ten corner use-case ve skutecnosti nepouziva. A oprasit "spravne", aby se to okamzite pri dalsi aktualizaci nerozbilo to samozrejme slo.
4.6.2018 11:18 alkoholik | skóre: 40 | blog: Alkoholik
Rozbalit Rozbalit vše Re: Systemd zabije Apache po skončení logrotate?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Misto restartu dej jenom reload (kill -USR1) a budes mit klid.
9.6.2018 13:06 kafi | skóre: 25 | blog: muj_prvni_blog
Rozbalit Rozbalit vše Re: Systemd zabije Apache po skončení logrotate?
Odpovědět | | Sbalit | Link | Blokovat | Admin

Opravdu zasnu nad nekterymi komentari. Mame tu systemd coz je pokrok - dostali jsme (my linuxaci) konecne moznost dohledu nad service. Nehlede na paralelni spousteni sluzeb. Co je na tom spatneho? Kdyz systemd prisel chtelo se mi zvracet/brecet, ale casem jsem mu dal sanci a ono to je opravdu ku prospechu veci.

To ze ma nekdo sprasenou konfiguraci a micha jablka s hruskama prece neni vina systemd! Sprasit jde i init (sysv).

Kdyz vam nesedi systemd muzete pouzity distro bez nej. Je jich sice jako safranu, ale porad jsou napr. Slackware, dale klon Debianu Devuan... Bohuzel vam musim garantovat, ze drive nebo pozdeji stejne prejdou i tyto distribuce na systemd. Duvodem je narocnost neustaleho predelavani vsech sluzeb z dnes uz standartniho systemd na initd (viz. rozdil mezi sysv a systemd). Jen si prectete zpravy o Devuanu jak dloho jim trvalo predelani a stejne stale patri do skatulky nestabilnich.

Nejvice vyuzivane distribuce na serverech (Debian, CentOS a jejich klony) maji systemd.

9.6.2018 13:55 R
Rozbalit Rozbalit vše Re: Systemd zabije Apache po skončení logrotate?
Debian bez problemov funguje bez systemd. Prevadzkujem ho tak na vsetkych serveroch.
9.6.2018 22:04 x
Rozbalit Rozbalit vše Re: Systemd zabije Apache po skončení logrotate?
Ooooo dorazil pokrok i do RedHat 7.5 kde to vsemocne systemd neumi ani reload na SSH? :-D

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.