Olen nyt tehnyt nämä vaiheet:
Kirjoita tiedosto ~/.config/systemd/user/act_on_resume.service :
[Unit]
After=suspend.target
[Service]
Environment=DISPLAY=:0
#ExecStart=/usr/bin/notify-send "%n" "Hello World"
ExecStart=/usr/local/bin/act_on_resume
[Install]
WantedBy=sleep.target
Kirjoita tiedosto /usr/local/bin/act_on_resume :
#!/bin/sh
me=$(basename $0)
notify-send "$me" "Hello World"
env > $me.log
Suorita $ systemctl --user enable act_on_resume
Created symlink from /home/haltia/.config/systemd/user/sleep.target.wants/act_on_resume.service to /home/haltia/.config/systemd/user/act_on_resume.service.
Komentoa
loginctl enable-linger $USER
en nähnyt tarpeelliseksi, koska olen tekemässä palvelua joka pyörähtää koneen herätessä ja pysähtyy pian.
Suorita systemctl --user start act_on_resume
Suorituksen tuloksena syntyy lokitiedosto ~/act_on_resume.log, mutta notify-send -komento menee jotenkin harakoille. Lokitiedosto näyttää samat muuttuvat ja arvot kuin komento
systemctl --user show-environment
plus kaksi muuttujaa lisää (DISPLAY ja MANAGERPID).
Aseta kone valmiustilaan ja
herätä. Nyt ei synny edes lokitiedostoa, saati että notify-send -komento kertoisi jotain.
Kaikesta debuggaamisesta huolimatta en vaan keksi
* mihin joutuu notify-send -komennon tulostus, ja
* mikä on pielessä kun suoritusta ei tapahdu valmiustilasta palatessa.
En ole löytänyt lisätietoa syslogista, enkä keksi mistä muusta lokista pitäisi etsiä.
Lähteinä olen käyttänyt satunnaisten sivujen lisäksi:
http://manpages.ubuntu.com/manpages/xenial/man1/systemctl.1.htmlhttp://manpages.ubuntu.com/manpages/xenial/man5/systemd.unit.5.htmlhttp://manpages.ubuntu.com/manpages/xenial/man5/systemd.service.5.htmlKäyttämättä ovat toistaiseksi jääneet:
http://manpages.ubuntu.com/manpages/xenial/man5/systemd-user.conf.5.html (tulee ehkä tarpeesen myöhemmin)
https://wiki.ubuntu.com/SystemdForUpstartUsers (koska en ole upstarttia koskaan käyttänytkään)