Portál AbcLinuxu, 31. května 2025 12:14
User=pepa ExecStart=stáhni poštu z účtu pepa1@gmail.coma
User=pepa ExecStart=stáhni poštu z účtu pepa.novak@yahoo.comOtázka zní, jak vytvořit service unit template (stahni-postu@.service), aby šlo splnit výše uvedené. Zatím jsem přišel na to, že více parametrů zadat nelze, ale jde to obejít pomocí volby
EnvironmentFile=%i
a proměnné nastavit v souboru %i dle libosti (_USER, EMAIL_ACC). Jenže tyto proměnné se nedají využít u volby User=
, pouze u Exec...
.
Takže aktuální "řešení" je:
ExecStart=/bin/su - c'/bin/getmail stáhni poštu z účtu $EMAIL_ACC' - $_USERA to má nepříjemný dopad, že v journalu se místo názvu procesu
getmail
objevuje su
.
P.S. Jedná se server (IMAP), poštu je třeba stahovat průběžně, nikoliv až po případném přihlášení pepy (nelze tedy IMHO použít /etc/systemd/user/...
).
Je nějaké elegantnější řešení?
Řešení dotazu:
/usr/bin/su -c '/usr/lib/dovecot/deliver ....' - $_USER
, přičemž doufám, že proměnnou _USER
nějak zvládnu nastavit v rámci fetchmailu v rámci mapování emailových účtů na lokální uživatele...
User
pomocí proměnné, proč ji nezadáte normálně přes override soubor? Budete mít jednotku třeba stahni-postu@pepa1_gmail.com.service
, a k tomu soubor /etc/systemd/system/stahni-postu@pepa1_gmail.com.service.d/mail.conf
s obsahem:
[Service] User=pepa Environment=MAIL=pepa1@gmail.com
P.S. Jedná se server (IMAP), poštu je třeba stahovat průběžně, nikoliv až po případném přihlášení pepy (nelze tedy IMHO použít /etc/systemd/user/...
).
Jde to použít. Uživateli to umožníš pomocí loginctl enable-linger pepa
. Pak můžeš mít /etc/systemd/user/stahni-postu@.service
:
[Unit] Description=Stáhni poštu z %i [Service] ExecStart=/bin/getmail … %i [Install] WantedBy=default.targetUživatel pepa si udělá
systemctl --user enable --now stahni-postu@pepa1@gmail.com.service stahni-postu@pepa.novak@yahoo.com.service
.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.