Puncte:1

Postfix provoacă probleme atunci când serviciul său este activat folosind systemctl și nu se lansează la pornire

drapel ae

Pe o Rocky Linux mașină cu versiunea 8.5 (un Red Hat Enterprise Linux compatibil bug-for-bug în aval), am configurat configurarea Postfix + Dovecot. După depanarea tuturor erorilor de configurare, am ajuns la punctul în care ambele servicii s-ar lansa cel puțin.

systemctl activa dovecot.service
systemctl activa postfix.service

După repornirea mașinii, am putut vedea Dovecot lansat corect atunci când a fost interogat folosind systemctl status porumbel. Postfix, pe de altă parte, nu a pornit, raportând:

[root@mail ~]# systemctl status postfix
â postfix.service - Agent de transport de e-mail Postfix
   Încărcat: încărcat (/usr/lib/systemd/system/postfix.service; activat; prestabilit furnizor: dezactivat)
   Activ: eșuat (Rezultat: cod de ieșire) din ...; acum 12 minute
  Proces: 1419 ExecStart=/usr/sbin/postfix start (cod=exit, status=1/FAILURE)
  Proces: 1396 ExecStartPre=/usr/libexec/postfix/chroot-update (code=exited, status=0/SUCCESS)
  Proces: 1364 ExecStartPre=/usr/libexec/postfix/aliasesdb (cod=exit, status=0/SUCCESS)

systemd[1]: Se pornește Postfix Mail Transport Agent...
postfix/postfix-script[1506]: fatal: sistemul de corespondență Postfix rulează deja
systemd[1]: postfix.service: Procesul de control a ieșit, cod=status ieșit=1
systemd[1]: postfix.service: a eșuat cu rezultatul „cod de ieșire”.
systemd[1]: Nu s-a pornit Postfix Mail Transport Agent.

O verificare rapidă folosind starea postfix a arătat într-adevăr că nu rulează. În mod surprinzător însă, începe postfix apoi a pornit serviciul fără probleme. Interogarea starea postfix apoi raportat că Postfix rulează fericit cu un nou PID. Interogarea systemctl status postfix încă o dată după aceea a arătat raportul de eroare neschimbat de înainte.

Totuși, eroarea raportată nu are sens. Eu pot systemctl dezactivați postfix, reporniți mașina, verificați că Postfix nu rulează cu adevărat folosind ambele systemctl status postfix și starea postfix, încercați să îl activați folosind systemctl start postfix și obține aceeași eroare.

În plus, dacă las serviciul Postfix dezactivat în systemd, reporniți mașina și porniți-l doar cu începe postfix, serviciul începe, dar systemctl status postfix îl raportează ca încărcat, inactiv...

[root@mail ~]# pornire postfix
postfix/postfix-script: pornirea sistemului de e-mail Postfix
[root@mail ~]# stare postfix
postfix/postfix-script: sistemul de corespondență Postfix rulează: PID: 2169
[root@mail ~]# systemctl status postfix
â postfix.service - Agent de transport de e-mail Postfix
   Încărcat: încărcat (/usr/lib/systemd/system/postfix.service; dezactivat; prestabilit furnizor: dezactivat)
   Activ: inactiv (mort)
[root@mail ~]#

De ce Postfix pe RHEL vine chiar și înregistrat ca serviciu atunci când refuză categoric să funcționeze ca atare? Și care este, atunci, modalitatea corectă de a vă asigura că Postfix începe la pornire?

Notă: am incercat chkconfig postfix activat așa cum l-am găsit sugerat de oameni online. Aceasta doar trimite cererea către systemctl activa postfix.service care mă duce înapoi la început.

... chiar trebuie să-l piratez în utilizare /etc/rc.local, când conținutul fișierului în sine spune că este acolo doar în scopuri de compatibilitate, nu ar trebui să mai fie folosit și ar trebui să mă gândesc să lucrez cu servicii systemd?

ACTUALIZARE 1: Am mers cu ceea ce mi s-a părut o soluție rezonabilă deocamdată - pornind postfix folosind începe postfix comanda in /etc/rc.local. După repornire, Postfix încă nu rula. Verificarea stării serviciului rc-local folosind starea systemctl rc-local, serviciul nu a pornit, motivul din jurnalele fiind exact același cu motivele menționate în jurnalele de serviciu Postfix după ce l-am activat prin systemctl - „fatal: sistemul de corespondență Postfix rulează deja”.Postfix pur și simplu nu reușește să pornească la pornire în toate condițiile.

Puncte:1
drapel cn

Acesta sună ca un conflict SysV și systemd. Încercați să dezactivați serviciul în systemd și reporniți și vedeți dacă rulează. Probabil va rula.

sudo systemctl dezactivați posfix
sudo init 6

Rețineți că folosesc init 6 pentru că acesta este cel mai brut mod de a reporni. The reporniți și închide funcţiile fac lucruri suplimentare care poate provoca efecte secundare. Cea mai nouă metodă este de fapt repornire systemctl, dar nu l-am folosit inca.

Acest lucru nu ar trebui să vă dea erori și este probabil să ruleze.

Dacă utilizați SysV, atunci ar trebui să vedeți linkurile de mai jos /etc/rc?.d (Unde ? este un număr de la 1 la 6) care se referă la postfix.

De asemenea, s-ar putea ca Postfix să detecteze că rulează deja verificând fișierul PID, în loc să fie în derulare un proces cu acel PID. Asta ar fi următoarea mea încercare. De multe ori fac o oprire curată înainte de pornire când un proces nu a pornit, astfel încât astfel de curățări au șansa de a fi resetate:

systemctl stop postfix
systemctl start postfix
Marty Cagas avatar
drapel ae
Vă mulțumesc pentru răspunsul dumneavoastră! După dezactivarea Postfix în _systemd_ și repornirea, nu rula nici la verificarea `systemctl status postfix`, nici la `postfix status` (care, după cunoștințele mele, este propriul lor wrapper pentru controlul serverului). Voi căuta SysV și voi vedea dacă îl pot lansa la pornire în acest fel.
Marty Cagas avatar
drapel ae
În cele din urmă, problema nu a fost în SysV, ci în mine folosind `reboot` în loc de `init 6` sau `systemctl reboot` corect. După cum se explică într-un alt răspuns [aici](https://unix.stackexchange.com/a/64385/383614), ele sunt diferite din punct de vedere tehnic și, în această situație, diferența a fost suficientă pentru a sparge Postfix.Nu mi-aș fi putut da seama fără răspunsul tău, așa că nu mi se pare corect să-l scriu pe al meu și să-l accept, dar, de dragul unei persoane în viitor, care se confruntă cu aceeași problemă, ai putea edita o mențiune despre aceasta în Răspuns?
drapel cn
@MartyCagas Gata.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.