Portál AbcLinuxu, 8. května 2025 00:44

Dotaz: Systemd unit, spuštění příkazu po přihlášení uživatele

28.7.2018 11:59 xhombre
Systemd unit, spuštění příkazu po přihlášení uživatele
Přečteno: 268×
Odpovědět | Admin
Ahoj na starém netbooku mi nefunguje zvuk, toto napraví spuštění prikazu alsactl restore

Na netbooku je Lubuntu 18.04. Problém jsem chtěl vyřešit pomocí unity spouštěné pod uživatelem po přihlášení.

Unita je napsaná takto:
[Unit]
Description=Alsa restore service
After=graphical.target

[Service]
Type=forking
User=user
ExecStart=-/bin/sh -c '/bin/sleep 10 && /usr/sbin/alsactl restore &'

[Install]
WantedBy=multi-user.target
unita je uložena v /home/jmeno_uživatele/.local/share/systemd/user/alsarestore.service

aktivovana systemctl --user enable alsarestore.service

ovšem to nefunguje, netuší někdo v čem je chyba? Předem děkuji.

Řešení dotazu:


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

Odpovědi

28.7.2018 12:10 cronin | skóre: 49
Rozbalit Rozbalit vše Re: Systemd unit, spuštění příkazu po přihlášení uživatele
Odpovědět | | Sbalit | Link | Blokovat | Admin
Udalosti, ktoré sa majú diať po prihlásení používateľa, riešim prostriedkami desktopu, do ktorého sa používateľ prihlasuje, v mojom prípade XFCE. V jednoduchom prípade stačí rovno príkaz, v zložitejšom vyrobím skript, ktorý potom volám:
[cronin@goldencut][~][12:03:58] cat .config/autostart/conky_load.desktop 
[Desktop Entry]
Encoding=UTF-8
Version=0.9.4
Type=Application
Name=conky_load
Comment=
Exec=conky -d -c /home/cronin/.config/conky/conky_load.conf -p 10
StartupNotify=false
Terminal=false
Hidden=false

[cronin@goldencut][~][12:04:11] cat .config/autostart/UserTmpDir.desktop 
[Desktop Entry]
Encoding=UTF-8
Version=0.9.4
Type=Application
Name=UserTmpDir
Comment=Ensure a transient user TMP dir
Exec=/usr/local/bin/ensure-transient-user-tmp-dir
OnlyShowIn=XFCE;
StartupNotify=false
Terminal=false
Hidden=false

[cronin@goldencut][~][12:04:24] 
Používam aj user-specific systemd unit, ale ten je riadený timerom.
Pavel Stárek avatar 28.7.2018 12:37 Pavel Stárek | skóre: 44 | blog: Tady bloguju já :-) | Kolín
Rozbalit Rozbalit vše Re: Systemd unit, spuštění příkazu po přihlášení uživatele
Odpovědět | | Sbalit | Link | Blokovat | Admin
V sekci Install, WantedBy by měl být možná default.target, jak jsem se dočetl zde https://www.brendanlong.com/systemd-user-services-are-amazing.html
Kdo chce, hledá způsob; kdo nechce, hledá důvod.
29.7.2018 00:47 xhombre
Rozbalit Rozbalit vše Re: Systemd unit, spuštění příkazu po přihlášení uživatele
Odpovědět | | Sbalit | Link | Blokovat | Admin
Děkuji všem za rady.

Nakonec stačilo tento skript ~/.config/alsarestore.sh
#!/bin/bash
sleep 20
alsactl restore

spustit z Volby > Vychozí programy pro LXSession jako /bin/sh -c /home/jmeno_uživatele/.config/alsarestore.sh

a vše funguje. Což jsem ovšem zkoušel jako jednu z prvních možností a nezadařilo se :-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.