рдЖрдореНрд╣реА рдмрд░реНтАНрдпрд╛рдЪ рдХрд╛рд│рд╛рдкрд╛рд╕реВрди рдХрдВрдЯреЗрдирд░рдордзреНрдпреЗ systemd рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рд╡рд┐рд╖рдпрд╛рдЪреЗ рдЕрдиреБрд╕рд░рдг рдХрд░рдд рдЖрд╣реЛрдд. 2014 рдордзреНрдпреЗ, рдЖрдордЪреЗ рд╕реБрд░рдХреНрд╖рд╛ рдЕрднрд┐рдпрдВрддрд╛ рдбреЕрдирд┐рдпрд▓ рд╡реЙрд▓реНрд╢ рдпрд╛рдВрдиреА рдПрдХ рд▓реЗрдЦ рд▓рд┐рд╣рд┐рд▓рд╛ рд╣реЛрддрд╛
рдпрд╛ рд▓реЗрдЦрд╛рдд рдЖрдореНрд╣реА рдХрд╛рд▓рд╛рдВрддрд░рд╛рдиреЗ рдХрд╛рдп рдмрджрд▓рд▓реЗ рдЖрд╣реЗ рдЖрдгрд┐ рдкреЙрдбрдореЕрди рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд рдЖрдореНрд╣рд╛рд▓рд╛ рдХрд╢реА рдорджрдд рдХрд░реВ рд╢рдХрддреЛ рд╣реЗ рджрд░реНрд╢рд╡реВ.
рдХрдВрдЯреЗрдирд░рдордзреНрдпреЗ systemd рдЪрд╛рд▓рд╡рдгреНрдпрд╛рдЪреА рдЕрдиреЗрдХ рдХрд╛рд░рдгреЗ рдЖрд╣реЗрдд, рдЬрд╕реЗ рдХреА:
- рдорд▓реНрдЯреА рд╕рд░реНрд╡реНрд╣рд┐рд╕ рдХрдВрдЯреЗрдирд░ - рдмрд░реНтАНрдпрд╛рдЪ рд▓реЛрдХрд╛рдВрдирд╛ рддреНрдпрд╛рдВрдЪреЗ рдорд▓реНрдЯреА-рд╕рд░реНрд╡реНрд╣рд┐рд╕ рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрднрд╛рд╕реА рдорд╢реАрдирдордзреВрди рдмрд╛рд╣реЗрд░ рдХрд╛рдврд╛рдпрдЪреЗ рдЖрд╣реЗрдд рдЖрдгрд┐ рдХрдВрдЯреЗрдирд░рдордзреНрдпреЗ рдЪрд╛рд▓рд╡рд╛рдпрдЪреЗ рдЖрд╣реЗрдд. рдирдХреНрдХреАрдЪ, рдЕрд╢рд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрдирд╛ рдорд╛рдпрдХреНрд░реЛрд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕рдордзреНрдпреЗ рдореЛрдбрдгреЗ рдЪрд╛рдВрдЧрд▓реЗ рд╣реЛрдИрд▓, рдкрд░рдВрддреБ рд╣реЗ рдХрд╕реЗ рдХрд░рд╛рдпрдЪреЗ рд╣реЗ рд╕рд░реНрд╡рд╛рдВрдирд╛рдЪ рдорд╛рд╣рд┐рдд рдирд╛рд╣реА рдХрд┐рдВрд╡рд╛ рдлрдХреНрдд рд╡реЗрд│ рдирд╛рд╣реА. рдореНрд╣рдгреВрди, рдпреБрдирд┐рдЯ рдлрд╛рдпрд▓реАрдВрдордзреВрди systemd рджреНрд╡рд╛рд░реЗ рд▓рд╛рдБрдЪ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕реЗрд╡рд╛рдВрд╕рд╛рд░рдЦреЗ рдЕрд╕реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЪрд╛рд▓рд╡рдгреЗ рдпреЛрдЧреНрдп рдЖрд╣реЗ.
- рд╕рд┐рд╕реНрдЯрдордб рдпреБрдирд┐рдЯ рдлрд╛рдЗрд▓реНрд╕ - рдХрдВрдЯреЗрдирд░рдЪреНрдпрд╛ рдЖрдд рдЪрд╛рд▓рдгрд╛рд░реЗ рдмрд╣реБрддреЗрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкреВрд░реНрд╡реА рдЖрднрд╛рд╕реА рдХрд┐рдВрд╡рд╛ рднреМрддрд┐рдХ рдорд╢реАрдирд╡рд░ рдЪрд╛рд▓рдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдХреЛрдбрд╡рд░реВрди рддрдпрд╛рд░ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд. рдпрд╛ рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдордзреНрдпреЗ рдПрдХ рдпреБрдирд┐рдЯ рдлрд╛рдЗрд▓ рдЕрд╕рддреЗ рдЬреА рдпрд╛ рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рд╕рд╛рдареА рд▓рд┐рд╣рд┐рд▓реА рдЧреЗрд▓реА рд╣реЛрддреА рдЖрдгрд┐ рддреА рдХрд╢реА рд▓реЙрдиреНрдЪ рдХрд░рд╛рдпрдЪреА рд╣реЗ рд╕рдордЬрддреЗ. рддреНрдпрд╛рдореБрд│реЗ рддреБрдордЪреА рд╕реНрд╡рддрдГрдЪреА рдЗрдирд┐рдЯ рд╕реЗрд╡рд╛ рд╣реЕрдХ рдХрд░рдгреНрдпрд╛рдкреЗрдХреНрд╖рд╛ рд╕рдорд░реНрдерд┐рдд рдкрджреНрдзрддреА рд╡рд╛рдкрд░реВрди рд╕реЗрд╡рд╛ рд╕реБрд░реВ рдХрд░рдгреЗ рдЕрдЬреВрди рдЪрд╛рдВрдЧрд▓реЗ рдЖрд╣реЗ.
- Systemd рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдЖрд╣реЗ. рд╣реЗ рд╕реЗрд╡рд╛ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди (рдмрдВрдж рдХрд░рдгреЗ, рд╕реЗрд╡рд╛ рдкреБрдиреНрд╣рд╛ рд╕реБрд░реВ рдХрд░рдгреЗ, рдХрд┐рдВрд╡рд╛ рдЭреЛрдореНрдмреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд╖реНрдЯ рдХрд░рдгреЗ) рдЗрддрд░ рдХреЛрдгрддреНрдпрд╛рд╣реА рд╕рд╛рдзрдирд╛рдкреЗрдХреНрд╖рд╛ рдЪрд╛рдВрдЧрд▓реЗ рд╣рд╛рддрд╛рд│рддреЗ.
рддреЗ рдореНрд╣рдгрд╛рд▓реЗ, рдХрдВрдЯреЗрдирд░рдордзреНрдпреЗ рд╕рд┐рд╕реНрдЯрдо рди рдЪрд╛рд▓рд╡рдгреНрдпрд╛рдЪреА рдЕрдиреЗрдХ рдХрд╛рд░рдгреЗ рдЖрд╣реЗрдд. рдореБрдЦреНрдп рдореНрд╣рдгрдЬреЗ systemd/journald рдХрдВрдЯреЗрдирд░рдЪреЗ рдЖрдКрдЯрдкреБрдЯ рдЖрдгрд┐ рдпрд╛рд╕рд╛рд░рдЦреНрдпрд╛ рд╕рд╛рдзрдирд╛рдВрдЪреЗ рдирд┐рдпрдВрддреНрд░рдг рдХрд░рддреЗ
рдж рдХрдорд┐рдВрдЧ рдСрдл рдкреЙрдбрдореЕрди
рдЖрдореНрд╣рд╛рд▓рд╛ рдХрд│рд╡рдгреНрдпрд╛рдд рдЖрдирдВрдж рд╣реЛрдд рдЖрд╣реЗ рдХреА рдкрд░рд┐рд╕реНрдерд┐рддреА рдЕрдЦреЗрд░реАрд╕ рдкреБрдвреЗ рд╕рд░рдХрд▓реА рдЖрд╣реЗ. рд░реЗрдб рд╣реЕрдЯ рдпреЗрдереЗ рдХрдВрдЯреЗрдирд░ рдЪрд╛рд▓рд╡рд┐рдгреНрдпрд╛рд╕ рдЬрдмрд╛рдмрджрд╛рд░ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдЯреАрдордиреЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреЗ рдард░рд╡рд┐рд▓реЗ
рдмрд░реЗрдЪ рд▓реЛрдХ рд╣реЗ рдХрд░рддрд╛рдд.
рдорд╛рдЭрд╛ рдкреЙрдбрдореЕрди рдЖрдгрд┐ рдореА рдХреЛрдгрддреНрдпрд╛рд╣реА рдкреНрд░рдХрд╛рд░реЗ рд╕рд┐рд╕реНрдЯрдо-рдЖрдзрд╛рд░рд┐рдд рдХрдВрдЯреЗрдирд░рдЪреНрдпрд╛ рд╡рд┐рд░реЛрдзрд╛рдд рдирд╛рд╣реА. рд╢реЗрд╡рдЯреА, Systemd рд╣реА рд╕рд░реНрд╡рд╛рдд рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд╡рд╛рдкрд░рд▓реА рдЬрд╛рдгрд╛рд░реА Linux init рдЙрдкрдкреНрд░рдгрд╛рд▓реА рдЖрд╣реЗ, рдЖрдгрд┐ рдХрдВрдЯреЗрдирд░рдордзреНрдпреЗ рдпреЛрдЧреНрдпрд░рд┐рддреНрдпрд╛ рдХрд╛рд░реНрдп рдХрд░реВ рди рджреЗрдгреЗ рдореНрд╣рдгрдЬреЗ рд╣рдЬрд╛рд░реЛ рд▓реЛрдХрд╛рдВрдирд╛ рдХрдВрдЯреЗрдирд░ рдЪрд╛рд▓рд╡рдгреНрдпрд╛рдЪреА рд╕рд╡рдп рдХрд╢реА рдЖрд╣реЗ рдпрд╛рдХрдбреЗ рджреБрд░реНрд▓рдХреНрд╖ рдХрд░рдгреЗ.
рдкреЙрдбрдореЕрдирд▓рд╛ рдХрдВрдЯреЗрдирд░рдордзреНрдпреЗ рд╕рд┐рд╕реНрдЯрдордб рдпреЛрдЧреНрдпрд░рд┐рддреНрдпрд╛ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХрд╛рдп рдХрд░рд╛рд╡реЗ рд╣реЗ рдорд╛рд╣рд┐рдд рдЖрд╣реЗ. рддреНрдпрд╛рд▓рд╛ /run рдЖрдгрд┐ /tmp рд╡рд░ tmpfs рдорд╛рдЙрдВрдЯ рдХрд░рдгреЗ рдпрд╛рд╕рд╛рд░рдЦреНрдпрд╛ рдЧреЛрд╖реНрдЯреАрдВрдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ. рддрд┐рд▓рд╛ "рдХрдВрдЯреЗрдирд░рд╛рдЗрдЬреНрдб" рд╡рд╛рддрд╛рд╡рд░рдг рд╕рдХреНрд╖рдо рдХрд░рдгреЗ рдЖрд╡рдбрддреЗ рдЖрдгрд┐ cgroup рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрдЪреНрдпрд╛ рддрд┐рдЪреНрдпрд╛ рднрд╛рдЧрд╛рд╕рд╛рдареА рдЖрдгрд┐ /var/log/journald рдлреЛрд▓реНрдбрд░рдордзреНрдпреЗ рд▓реЗрдЦрди рдкрд░рд╡рд╛рдирдЧреА рдЕрдкреЗрдХреНрд╖рд┐рдд рдЖрд╣реЗ.
рдЬреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣реА рдХрдВрдЯреЗрдирд░ рд╕реБрд░реВ рдХрд░рддрд╛ рдЬреНрдпрд╛рдордзреНрдпреЗ рдкрд╣рд┐рд▓реА рдХрдорд╛рдВрдб init рдХрд┐рдВрд╡рд╛ systemd рдЕрд╕рддреЗ, Podman рдЖрдкреЛрдЖрдк tmpfs рдЖрдгрд┐ Cgroups рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рддреЗ рдЬреЗрдгреЗрдХрд░реВрди systemd рд╕рдорд╕реНрдпрд╛рдВрд╢рд┐рд╡рд╛рдп рд╕реБрд░реВ рд╣реЛрдИрд▓. рд╣рд╛ рдСрдЯреЛ рд▓реЙрдиреНрдЪ рдореЛрдб рдмреНрд▓реЙрдХ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, --systemd=false рдкрд░реНрдпрд╛рдп рд╡рд╛рдкрд░рд╛. рдХреГрдкрдпрд╛ рд▓рдХреНрд╖рд╛рдд рдШреНрдпрд╛ рдХреА рдкреЙрдбрдореЕрдирд▓рд╛ systemd рдХрд┐рдВрд╡рд╛ init рдХрдорд╛рдВрдб рдЪрд╛рд▓рд╡рд╛рдпрдЪреА рдЧрд░рдЬ рдЖрд╣реЗ рдЕрд╕реЗ рджрд┐рд╕рддреЗ рддреЗрд╡реНрд╣рд╛рдЪ systemd рдореЛрдб рд╡рд╛рдкрд░рддреЛ.
рдореЕрдиреНрдпреБрдЕрд▓рдордзреАрд▓ рдПрдХ рдЙрддрд╛рд░рд╛ рдпреЗрдереЗ рдЖрд╣реЗ:
рдордиреБрд╖реНрдп podman рдзрд╛рд╡
...тАУsystemd=true|false
рд╕рд┐рд╕реНрдЯреАрдо рдореЛрдбрдордзреНрдпреЗ рдХрдВрдЯреЗрдирд░ рдЪрд╛рд▓рд╡рд┐рдд рдЖрд╣реЗ. рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ рд╕рдХреНрд╖рдо.
рддреБрдореНрд╣реА рдХрдВрдЯреЗрдирд░рдордзреНрдпреЗ systemd рдХрд┐рдВрд╡рд╛ init рдХрдорд╛рдВрдб рдЪрд╛рд▓рд╡рд▓реНрдпрд╛рд╕, Podman рдЦрд╛рд▓реАрд▓ рдбрд┐рд░реЗрдХреНрдЯрд░реАрдордзреНрдпреЗ tmpfs рдорд╛рдЙрдВрдЯ рдкреЙрдЗрдВрдЯ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░реЗрд▓:
/рд░рди, /рд░рди/рд▓реЙрдХ, /tmp, /sys/fs/cgroup/systemd, /var/lib/journal
рддрд╕реЗрдЪ рдбреАрдлреЙрд▓реНрдЯ рд╕реНрдЯреЙрдк рд╕рд┐рдЧреНрдирд▓ SIGRTMIN+3 рдЕрд╕реЗрд▓.
рд╣реЗ рд╕рд░реНрд╡ systemd рд▓рд╛ рдХреЛрдгрддреНрдпрд╛рд╣реА рдмрджрд▓рд╛рд╢рд┐рд╡рд╛рдп рдмрдВрдж рдХрдВрдЯреЗрдирд░рдордзреНрдпреЗ рдЪрд╛рд▓рд╡рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ.
рдЯреАрдк: systemd cgroup рдлрд╛рдЗрд▓рдкреНрд░рдгрд╛рд▓реАрд╡рд░ рд▓рд┐рд╣рд┐рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░рддреЛ. рддрд░реА, SELinux рдХрдВрдЯреЗрдирд░реНрд╕рдирд╛ рдореБрд▓рднреВрддрд░рд┐рддреНрдпрд╛ рдЕрд╕реЗ рдХрд░рдгреНрдпрд╛рдкрд╛рд╕реВрди рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рддреЗ. рд▓реЗрдЦрди рд╕рдХреНрд╖рдо рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХрдВрдЯреЗрдирд░_рдореЕрдиреЗрдЬ_рд╕реАрдЧреНрд░реБрдк рдмреБрд▓рд┐рдпрди рдкреЕрд░рд╛рдореАрдЯрд░ рд╕рдХреНрд╖рдо рдХрд░рд╛:
setsebool -P рдХрдВрдЯреЗрдирд░_рдореЕрдиреЗрдЬ_рд╕реАрдЧреНрд░реБрдк рдЦрд░реЗ рдЖрд╣реЗ
рдЖрддрд╛ рдкреЙрдбрдореЕрди рд╡рд╛рдкрд░реВрди рдХрдВрдЯреЗрдирд░рдордзреНрдпреЗ рд╕рд┐рд╕реНрдЯрдордб рдЪрд╛рд▓рд╡рд┐рдгреНрдпрд╛рд╕рд╛рдареА рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдХрд╢реА рджрд┐рд╕рддреЗ рддреЗ рдкрд╣рд╛:
# cat Dockerfile
FROM fedora
RUN dnf -y install httpd; dnf clean all; systemctl enable httpd
EXPOSE 80
CMD [ "/sbin/init" ]
рдПрд╡рдвреЗрдЪ.
рдЖрддрд╛ рдЖрдореНрд╣реА рдХрдВрдЯреЗрдирд░ рдПрдХрддреНрд░ рдХрд░рддреЛ:
# podman build -t systemd .
рдЖрдореНрд╣реА SELinux рд▓рд╛ systemd рд▓рд╛ Cgroups рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд╕реБрдзрд╛рд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрдгреНрдпрд╛рд╕ рд╕рд╛рдВрдЧрддреЛ:
# setsebool -P container_manage_cgroup true
рдмрд░реЗрдЪ рд▓реЛрдХ, рддрд╕реЗ, рдпрд╛ рдЪрд░рдгрд╛рдмрджреНрджрд▓ рд╡рд┐рд╕рд░рддрд╛рдд. рд╕реБрджреИрд╡рд╛рдиреЗ, рд╣реЗ рдлрдХреНрдд рдПрдХрджрд╛рдЪ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдЖрдгрд┐ рд╕рд┐рд╕реНрдЯрдо рд░реАрдмреВрдЯ рдХреЗрд▓реНрдпрд╛рдирдВрддрд░ рд╕реЗрдЯрд┐рдВрдЧ рдЬрддрди рдХреЗрд▓реА рдЬрд╛рддреЗ.
рдЖрддрд╛ рдЖрдореНрд╣реА рдлрдХреНрдд рдХрдВрдЯреЗрдирд░ рд╕реБрд░реВ рдХрд░рддреЛ:
# podman run -ti -p 80:80 systemd
systemd 239 running in system mode. (+PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD +IDN2 -IDN +PCRE2 default-hierarchy=hybrid)
Detected virtualization container-other.
Detected architecture x86-64.
Welcome to Fedora 29 (Container Image)!
Set hostname to <1b51b684bc99>.
Failed to install release agent, ignoring: Read-only file system
File /usr/lib/systemd/system/systemd-journald.service:26 configures an IP firewall (IPAddressDeny=any), but the local system does not support BPF/cgroup based firewalling.
Proceeding WITHOUT firewalling in effect! (This warning is only shown for the first loaded unit using IP firewalling.)
[ OK ] Listening on initctl Compatibility Named Pipe.
[ OK ] Listening on Journal Socket (/dev/log).
[ OK ] Started Forward Password Requests to Wall Directory Watch.
[ OK ] Started Dispatch Password Requests to Console Directory Watch.
[ OK ] Reached target Slices.
тАж
[ OK ] Started The Apache HTTP Server.
рддреЗрдЪ, рд╕реЗрд╡рд╛ рдЪрд╛рд▓реВ рдЖрд╣реЗ рдЖрдгрд┐ рдЪрд╛рд▓реВ рдЖрд╣реЗ:
$ curl localhost
<html xml_lang="en" lang="en">
тАж
</html>
рдЯреАрдк: рдбреЙрдХрд░рд╡рд░ рд╣реЗ рд╡рд╛рдкрд░реВрди рдкрд╛рд╣реВ рдирдХрд╛! рдбрд┐рдордирджреНрд╡рд╛рд░реЗ рдпрд╛ рдкреНрд░рдХрд╛рд░рдЪреЗ рдХрдВрдЯреЗрдирд░ рд▓рд╛рдБрдЪ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдЕрджреНрдпрд╛рдк рдбрдлрд╕рд╣ рдирд╛рдЪрдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ. (рдбреЙрдХрд░рдордзреНрдпреЗ рд╣реЗ рд╕рд░реНрд╡ рдЕрдЦрдВрдбрдкрдгреЗ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЕрддрд┐рд░рд┐рдХреНрдд рдлреАрд▓реНрдб рдЖрдгрд┐ рдкреЕрдХреЗрдЬреЗрд╕рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрд╕реЗрд▓ рдХрд┐рдВрд╡рд╛ рддреЗ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдХрдВрдЯреЗрдирд░рдордзреНрдпреЗ рдЪрд╛рд▓рд╡рд╛рд╡реЗ рд▓рд╛рдЧреЗрд▓. рддрдкрд╢реАрд▓рд╛рдВрд╕рд╛рдареА, рдкрд╣рд╛
Podman рдЖрдгрд┐ systemd рдмрджреНрджрд▓ рдЖрдгрдЦреА рдХрд╛рд╣реА рдЫрд╛рди рдЧреЛрд╖реНрдЯреА
рдкреЙрдбрдореЕрди рд╕рд┐рд╕реНрдЯрдордб рдпреБрдирд┐рдЯ рдлрд╛рдпрд▓реАрдВрдордзреНрдпреЗ рдбреЙрдХрд░рдкреЗрдХреНрд╖рд╛ рдЪрд╛рдВрдЧрд▓реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ
рд╕рд┐рд╕реНрдЯрдо рдмреВрдЯ рдЭрд╛рд▓реНрдпрд╛рд╡рд░ рдХрдВрдЯреЗрдирд░ рд╕реБрд░реВ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реНрдпрд╛рд╕, рддреБрдореНрд╣реА рд╕рд┐рд╕реНрдЯрдордб рдпреБрдирд┐рдЯ рдлрд╛рдЗрд▓рдордзреНрдпреЗ рдпреЛрдЧреНрдп рдкреЙрдбрдореЕрди рдХрдорд╛рдВрдб рдЯрд╛рдХреВ рд╢рдХрддрд╛, рдЬреЗ рд╕реЗрд╡рд╛ рд╕реБрд░реВ рдХрд░реЗрд▓ рдЖрдгрд┐ рддреНрдпрд╛рдЪреЗ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░реЗрд▓. рдкреЙрдбрдореЕрди рдорд╛рдирдХ рдлреЛрд░реНрдХ-рдПрдХреНрд╕реЗрдХ рдореЙрдбреЗрд▓ рд╡рд╛рдкрд░рддреЛ. рджреБрд╕рд▒реНрдпрд╛ рд╢рдмреНрджрд╛рдВрдд, рдХрдВрдЯреЗрдирд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреЙрдбрдореЕрди рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪреА рдореБрд▓реЗ рдЖрд╣реЗрдд, рддреНрдпрд╛рдореБрд│реЗ systemd рддреНрдпрд╛рдВрдЪреЗ рд╕рд╣рдЬ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░реВ рд╢рдХрддреЗ.
рдбреЙрдХрд░ рдХреНрд▓рд╛рдпрдВрдЯ-рд╕рд░реНрд╡реНрд╣рд░ рдореЙрдбреЗрд▓ рд╡рд╛рдкрд░рддреЛ рдЖрдгрд┐ рдбреЙрдХрд░ рд╕реАрдПрд▓рдЖрдп рдХрдорд╛рдВрдб рдереЗрдЯ рдпреБрдирд┐рдЯ рдлрд╛рдЗрд▓рдордзреНрдпреЗ рдареЗрд╡рддрд╛ рдпреЗрддрд╛рдд. рддрдерд╛рдкрд┐, рдПрдХрджрд╛ рдбреЙрдХрд░ рдХреНрд▓рд╛рдпрдВрдЯ рдбреЙрдХрд░ рдбрд┐рдордирд╢реА рдЬреЛрдбрд▓рд╛ рдХреА, рддреЛ (рдХреНрд▓рд╛рдпрдВрдЯ) stdin рдЖрдгрд┐ stdout рд╣рд╛рддрд╛рд│рдгрд╛рд░реА рджреБрд╕рд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрдирддреЗ. рдпрд╛ рдмрджрд▓реНрдпрд╛рдд, systemd рд▓рд╛ рдбреЙрдХрд░ рдХреНрд▓рд╛рдпрдВрдЯ рдЖрдгрд┐ рдбреЙрдХрд░ рдбрд┐рдордирдЪреНрдпрд╛ рдирд┐рдпрдВрддреНрд░рдгрд╛рдЦрд╛рд▓реА рдЪрд╛рд▓рдгрд╛рд░реЗ рдХрдВрдЯреЗрдирд░ рдпрд╛рдВрдЪреНрдпрд╛рддреАрд▓ рдХрдиреЗрдХреНрд╢рдирдмрджреНрджрд▓ рдХреЛрдгрддреАрд╣реА рдХрд▓реНрдкрдирд╛ рдирд╛рд╣реА, рдЖрдгрд┐ рдореНрд╣рдгреВрди, рдпрд╛ рдореЙрдбреЗрд▓рдордзреНрдпреЗ, systemd рдореВрд▓рднреВрддрдкрдгреЗ рд╕реЗрд╡реЗрдЪреЗ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реА.
рд╕реЙрдХреЗрдЯрджреНрд╡рд╛рд░реЗ systemd рд╕рдХреНрд░рд┐рдп рдХрд░рдд рдЖрд╣реЗ
рдкреЙрдбрдореЕрди рд╕реЙрдХреЗрдЯрджреНрд╡рд╛рд░реЗ рд╕рдХреНрд░рд┐рдпрдХрд░рдг рдпреЛрдЧреНрдпрд░рд┐рддреНрдпрд╛ рд╣рд╛рддрд╛рд│рддреЛ. рдкреЙрдбрдореЕрди рдлреЛрд░реНрдХ-рдПрдХреНрд╕реЗрдХ рдореЙрдбреЗрд▓ рд╡рд╛рдкрд░рдд рдЕрд╕рд▓реНрдпрд╛рдореБрд│реЗ, рддреЗ рд╕реЙрдХреЗрдЯрд▓рд╛ рддреНрдпрд╛рдЪреНрдпрд╛ рдЪрд╛рдЗрд▓реНрдб рдХрдВрдЯреЗрдирд░ рдкреНрд░рдХреНрд░рд┐рдпреЗрдд рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░реВ рд╢рдХрддреЗ. рдбреЙрдХрд░ рд╣реЗ рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реА рдХрд╛рд░рдг рддреЗ рдХреНрд▓рд╛рдпрдВрдЯ-рд╕рд░реНрд╡реНрд╣рд░ рдореЙрдбреЗрд▓ рд╡рд╛рдкрд░рддреЗ.
рдкреЙрдбрдореЕрди рд░рд┐рдореЛрдЯ рдХреНрд▓рд╛рдпрдВрдЯрд╢реА рдХрдВрдЯреЗрдирд░реНрд╕рд╢реА рд╕рдВрд╡рд╛рдж рд╕рд╛рдзрдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рдд рдЕрд╕рд▓реЗрд▓реА varlink рд╕реЗрд╡рд╛ рдкреНрд░рддреНрдпрдХреНрд╖рд╛рдд рд╕реЙрдХреЗрдЯрджреНрд╡рд╛рд░реЗ рд╕рдХреНрд░рд┐рдп рдХреЗрд▓реА рдЬрд╛рддреЗ. Cockpit-podman рдкреЕрдХреЗрдЬ, Node.js рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓реЗ рдЖрдгрд┐ рдХреЙрдХрдкрд┐рдЯ рдкреНрд░рдХрд▓реНрдкрд╛рдЪрд╛ рднрд╛рдЧ, рд▓реЛрдХрд╛рдВрдирд╛ рд╡реЗрдм рдЗрдВрдЯрд░рдлреЗрд╕рджреНрд╡рд╛рд░реЗ рдкреЙрдбрдореЕрди рдХрдВрдЯреЗрдирд░рд╢реА рд╕рдВрд╡рд╛рдж рд╕рд╛рдзрдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ. рдХреЙрдХрдкрд┐рдЯ-рдкреЙрдбрдореЕрдирд╡рд░ рдЪрд╛рд▓рдгрд╛рд░рд╛ рд╡реЗрдм рдбрд┐рдорди рд╡рд░рд▓рд┐рдВрдХ рд╕реЙрдХреЗрдЯрд╡рд░ рд╕рдВрджреЗрд╢ рдкрд╛рдард╡рддреЛ рдЬреНрдпрд╛рд╡рд░ рд╕рд┐рд╕реНрдЯрдо рдРрдХрддреЛ. Systemd рдирдВрддрд░ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рдХрдВрдЯреЗрдирд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдкреЙрдбрдореЕрди рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕рдХреНрд░рд┐рдп рдХрд░рддреЗ. рд╕реЙрдХреЗрдЯрд╡рд░ systemd рд╕рдХреНрд░рд┐рдп рдХреЗрд▓реНрдпрд╛рдиреЗ рд░рд┐рдореЛрдЯ API рдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдХрд░рддрд╛рдирд╛ рд╕рддрдд рдЪрд╛рд▓реВ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдбрд┐рдордирдЪреА рдЧрд░рдЬ рдирд╛рд╣реАрд╢реА рд╣реЛрддреЗ.
рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдЖрдореНрд╣реА рдкреЙрдбрдореЕрди-рд░рд┐рдореЛрдЯ рдирд╛рд╡рд╛рдЪрд╛ рджреБрд╕рд░рд╛ рдкреЙрдбрдореЕрди рдХреНрд▓рд╛рдпрдВрдЯ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдд рдЖрд╣реЛрдд, рдЬреЛ рд╕рдорд╛рди рдкреЙрдбрдореЕрди CLI рд▓рд╛рдЧреВ рдХрд░рддреЛ рдкрд░рдВрддреБ рдХрдВрдЯреЗрдирд░ рдЪрд╛рд▓рд╡рд┐рдгреНрдпрд╛рд╕рд╛рдареА varlink рдХреЙрд▓ рдХрд░рддреЛ. рдкреЙрдбрдореЕрди-рд░рд┐рдореЛрдЯ SSH рд╕рддреНрд░рд╛рдВрдЪреНрдпрд╛ рд╢реАрд░реНрд╖рд╕реНрдерд╛рдиреА рдЪрд╛рд▓реВ рд╢рдХрддреЗ, рдЬреНрдпрд╛рдореБрд│реЗ рддреБрдореНрд╣рд╛рд▓рд╛ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдорд╢реАрдирд╡рд░реАрд▓ рдХрдВрдЯреЗрдирд░рд╢реА рд╕реБрд░рдХреНрд╖рд┐рддрдкрдгреЗ рд╕рдВрд╡рд╛рдж рд╕рд╛рдзрддрд╛ рдпреЗрдИрд▓. рдХрд╛рд▓рд╛рдВрддрд░рд╛рдиреЗ, рдЖрдореНрд╣реА Linux рд╕реЛрдмрдд MacOS рдЖрдгрд┐ Windows рд▓рд╛ рд╕рдорд░реНрдерди рджреЗрдгреНрдпрд╛рд╕рд╛рдареА рдкреЙрдбрдореЕрди-рд░рд┐рдореЛрдЯ рд╕рдХреНрд╖рдо рдХрд░рдгреНрдпрд╛рдЪреА рдпреЛрдЬрдирд╛ рдЖрдЦрдд рдЖрд╣реЛрдд, рдЬреЗрдгреЗрдХрд░реБрди рддреНрдпрд╛ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╡рд░реАрд▓ рд╡рд┐рдХрд╛рд╕рдХ рдкреЙрдбрдореЕрди рд╡рд░рд▓рд┐рдВрдХ рдЪрд╛рд▓реВ рдЕрд╕рд▓реЗрд▓реЗ Linux рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрди рдЪрд╛рд▓рд╡реВ рд╢рдХрддреАрд▓ рдЖрдгрд┐ рдХрдВрдЯреЗрдирд░ рд╕реНрдерд╛рдирд┐рдХ рдорд╢реАрдирд╡рд░ рдЪрд╛рд▓рдд рдЕрд╕рд▓реНрдпрд╛рдЪрд╛ рдкреВрд░реНрдг рдЕрдиреБрднрд╡ рдШреНрдпрд╛.
SD_NOTIFY
Systemd рддреБрдореНрд╣рд╛рд▓рд╛ рд╕рд╣рд╛рдпреНрдпрдХ рд╕реЗрд╡рд╛ рд╕реБрд░реВ рдХрд░рдгреНрдпрд╛рд╕ рддреНрдпрд╛рдВрдирд╛ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓реА рдХрдВрдЯреЗрдирд░ рд╕реЗрд╡рд╛ рд╕реБрд░реВ рд╣реЛрдИрдкрд░реНрдпрдВрдд рдкреБрдвреЗ рдврдХрд▓рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ. рдкреЙрдбрдореЕрди SD_NOTIFY рд╕реЙрдХреЗрдЯ рдХрдВрдЯреЗрдирд░реАрдХреГрдд рд╕реЗрд╡реЗрдХрдбреЗ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░реВ рд╢рдХрддреЛ рдЬреЗрдгреЗрдХрд░реБрди рд╕реЗрд╡рд╛ рд╕рд┐рд╕реНрдЯрдорд▓рд╛ рд╕реВрдЪрд┐рдд рдХрд░реЗрд▓ рдХреА рддреЗ рдСрдкрд░реЗрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддрдпрд╛рд░ рдЖрд╣реЗ. рдЖрдгрд┐ рдкреБрдиреНрд╣рд╛, рдбреЙрдХрд░, рдЬреЛ рдХреНрд▓рд╛рдпрдВрдЯ-рд╕рд░реНрд╡реНрд╣рд░ рдореЙрдбреЗрд▓ рд╡рд╛рдкрд░рддреЛ, рд╣реЗ рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реА.
рдпреЛрдЬрдирд╛рдВрдордзреНрдпреЗ
рдЖрдореНрд╣реА podman generate systemd CONTAINERID рдХрдорд╛рдВрдб рдЬреЛрдбрдгреНрдпрд╛рдЪреА рдпреЛрдЬрдирд╛ рдЖрдЦрдд рдЖрд╣реЛрдд, рдЬреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдВрдЯреЗрдирд░рдЪреЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ systemd рдпреБрдирд┐рдЯ рдлрд╛рдЗрд▓ рддрдпрд╛рд░ рдХрд░реЗрд▓. рд╣реЗ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдирд╕рд▓реЗрд▓реНрдпрд╛ рдХрдВрдЯреЗрдирд░рд╕рд╛рдареА рд░реВрдЯ рдЖрдгрд┐ рд░реВрдЯрд▓реЗрд╕ рдореЛрдбрдордзреНрдпреЗ рдХрд╛рд░реНрдп рдХреЗрд▓реЗ рдкрд╛рд╣рд┐рдЬреЗ. рдЖрдореНрд╣реА OCI-рд╕реБрд╕рдВрдЧрдд systemd-nspawn рд░рдирдЯрд╛рдЗрдорд╕рд╛рдареА рд╡рд┐рдирдВрддреА рджреЗрдЦреАрд▓ рдкрд╛рд╣рд┐рд▓реА рдЖрд╣реЗ.
рдирд┐рд╖реНрдХрд░реНрд╖
рдХрдВрдЯреЗрдирд░рдордзреНрдпреЗ рд╕рд┐рд╕реНрдЯрдо рдЪрд╛рд▓рд╡рдгреЗ рд╣реА рд╕рдордЬрдгреНрдпрд╛рд╕рд╛рд░рдЦреА рдЧрд░рдЬ рдЖрд╣реЗ. рдЖрдгрд┐ рдкреЙрдбрдореЕрдирдЪреЗ рдЖрднрд╛рд░, рдЖрдордЪреНрдпрд╛рдХрдбреЗ рд╢реЗрд╡рдЯреА рдХрдВрдЯреЗрдирд░ рд░рдирдЯрд╛рдЗрдо рдЖрд╣реЗ рдЬреЛ systemd рд╢реА рд╡рд┐рд░реЛрдзрд╛рднрд╛рд╕ рдХрд░рдд рдирд╛рд╣реА, рдкрд░рдВрддреБ рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕ рд╕реБрд▓рдн рдХрд░рддреЛ.
рд╕реНрддреНрд░реЛрдд: www.habr.com