0
Mam problem związany ze stworzeniem usługi systemd, która automatycznie wyłączyłaby
inny komputer (z oprogramowaniem do synchronizacji plików - syncthing).
Chciałbym, żeby przy wyłączaniu mojego głównego komputera (Linux Mint 21.3 Cinnamon)
automatycznie wyłączać "serwer" z syncthing.
Serwer stoi na Ubuntu 22.04 LTS na Raspberry PI 4.
Kroki, które podjąłem - kod skryptu bash:
Skrypt działa poprawnie (próbowałem na koncie użytkownika - kola
i po sudo su na koncie root'a - działa za każdym razem).
Plik z kodem usługi systemd:
Prawdopodobnie powyżej coś robię źle (ale próbowałem też innych opcji w [Install] typu shutdown.target, halt.target ..., oczywiście dając wtedy skrypt do ExecStart ... kombinowałem też z zależnościami, ogólnie wszystko co znalazłem gdzieś na forach, ale nic z tego nie działa).
Usługa oczywiście aktywowana w systemie:
Prawdopodobnie (tak myślę, mogę się mylić bo pomysły mi się wyczerpały) jakiś zależności mi brakuje najpewniej
patrząc na błąd coś z rozpoznawaniem nazw sieciowych (przy czym próbowałem różnych
konfiguracji) - ale w Requires mam nss-lookup.target ... .
Przykładowe logi z journalctl -u before_shutdown.service
Jak ktoś wiedziałby co jest do zmiany, to proszę o pomoc.
inny komputer (z oprogramowaniem do synchronizacji plików - syncthing).
Chciałbym, żeby przy wyłączaniu mojego głównego komputera (Linux Mint 21.3 Cinnamon)
automatycznie wyłączać "serwer" z syncthing.
Serwer stoi na Ubuntu 22.04 LTS na Raspberry PI 4.
Kroki, które podjąłem - kod skryptu bash:
Kod:
#!/bin/bash
USER="root"
HOST="raspberrypi.local"
ssh -i /home/kola/.ssh/id_rsa $USER@$HOST "shutdown -h now"
i po sudo su na koncie root'a - działa za każdym razem).
Plik z kodem usługi systemd:
Kod:
[Unit]
Description=My shutdown script
Requires=network.target local-fs.target nss-lookup.target
[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/bin/true
ExecStop=/home/kola/syncthing/skrypty/raspberry_OFF
[Install]
WantedBy=multi-user.target
Prawdopodobnie powyżej coś robię źle (ale próbowałem też innych opcji w [Install] typu shutdown.target, halt.target ..., oczywiście dając wtedy skrypt do ExecStart ... kombinowałem też z zależnościami, ogólnie wszystko co znalazłem gdzieś na forach, ale nic z tego nie działa).
Usługa oczywiście aktywowana w systemie:
Kod:
root@desktop1:/home/kola# sudo systemctl status before_shutdown.service
● before_shutdown.service - My shutdown script
Loaded: loaded (/etc/systemd/system/before_shutdown.service; enabled; vend>
Active: active (exited) since Sat 2024-04-06 23:10:48 CEST; 29min ago
Process: 1094 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
Main PID: 1094 (code=exited, status=0/SUCCESS)
CPU: 597us
kwi 06 23:10:48 desktop1 systemd[1]: Starting My shutdown script...
kwi 06 23:10:48 desktop1 systemd[1]: Finished My shutdown script.
Prawdopodobnie (tak myślę, mogę się mylić bo pomysły mi się wyczerpały) jakiś zależności mi brakuje najpewniej
patrząc na błąd coś z rozpoznawaniem nazw sieciowych (przy czym próbowałem różnych
konfiguracji) - ale w Requires mam nss-lookup.target ... .
Przykładowe logi z journalctl -u before_shutdown.service
Kod:
-- Boot 296c12278521492d9972b2ab84b1f3d7 --
kwi 07 00:17:55 desktop1 systemd[1]: Starting My shutdown script...
kwi 07 00:17:55 desktop1 systemd[1]: Finished My shutdown script.
kwi 07 00:19:39 desktop1 systemd[1]: Stopping My shutdown script...
kwi 07 00:19:39 desktop1 raspberry_OFF[4386]: ssh: Could not resolve hostname r>
kwi 07 00:19:39 desktop1 systemd[1]: before_shutdown.service: Control process e>
kwi 07 00:19:39 desktop1 systemd[1]: before_shutdown.service: Failed with resul>
kwi 07 00:19:39 desktop1 systemd[1]: Stopped My shutdown script.
-- Boot b32ef47f510440cd9852f1c3d6304397 --
kwi 07 00:20:24 desktop1 systemd[1]: Starting My shutdown script...
kwi 07 00:20:24 desktop1 systemd[1]: Finished My shutdown script.
kwi 07 00:22:00 desktop1 systemd[1]: Stopping My shutdown script...
kwi 07 00:22:01 desktop1 raspberry_OFF[4614]: ssh: Could not resolve hostname r>
kwi 07 00:22:01 desktop1 systemd[1]: before_shutdown.service: Control process e>
kwi 07 00:22:01 desktop1 systemd[1]: before_shutdown.service: Failed with resul>
kwi 07 00:22:01 desktop1 systemd[1]: Stopped My shutdown script.
-- Boot d400aae6994f4a249b4657ce2debd055 --
kwi 07 00:22:47 desktop1 systemd[1]: Starting My shutdown script...
kwi 07 00:22:47 desktop1 systemd[1]: Finished My shutdown script.
kwi 07 00:25:00 desktop1 systemd[1]: Stopping My shutdown script...
kwi 07 00:25:00 desktop1 raspberry_OFF[4744]: ssh: Could not resolve hostname r>
kwi 07 00:25:00 desktop1 systemd[1]: before_shutdown.service: Control process e>
kwi 07 00:25:00 desktop1 systemd[1]: before_shutdown.service: Failed with resul>
kwi 07 00:25:00 desktop1 systemd[1]: Stopped My shutdown script.
-- Boot ec2e405374c0454ea7239b200af02f6f --
kwi 07 00:25:46 desktop1 systemd[1]: Starting My shutdown script...
kwi 07 00:25:46 desktop1 systemd[1]: Finished My shutdown script.
Jak ktoś wiedziałby co jest do zmiany, to proszę o pomoc.