Autostart über Systemd geht nur manchmal

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
Richard
Beiträge: 639
Registriert: 11.10.2012 14:18:37
Lizenz eigener Beiträge: GNU General Public License

Autostart über Systemd geht nur manchmal

Beitrag von Richard » 31.12.2018 18:45:11

Hallo,

ich habe unter Raspbian auf meinem Raspberry Pi das Problem, dass sich NZBget nur manchmal nach dem Reboot per Autostart startet. Die Unit sieht so aus:

Code: Alles auswählen

[Unit]
After=network.target
[Service]
User=pi
Group=pi
Type=forking
ExecStart=/home/pi/.nzbget/nzbget -D
ExecStop=/home/pi/.nzbget/nzbget -Q
ExecReload=/home/pi/.nzbget/nzbget -O
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
Die Datei liegt unter /etc/systemd/system. Es wurde auch ein anderer Pfad empfohlen, da war das Ergebnis aber das gleiche, ich weiß aber nicht mehr welcher es genau ist. Eine Logik habe ich bisher nicht erkannt, manchmal geht es, manchmal nicht. Wenn es einmal nicht lief, klappte es nach einem Reboot bisher immer. Das hier wird ausgegeben, wenn ich eine Statusabfrage mache:
systemctl status nzbget
● nzbget.service - NZBGet Daemon
Loaded: loaded (/etc/systemd/system/nzbget.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Mon 2018-12-31 16:16:21 CET; 11min ago
Docs: http://nzbget.net/Documentation
Process: 678 ExecStop=/home/pi/.nzbget/nzbget -Q (code=exited, status=1/FAILURE)
Process: 674 ExecStart=/home/pi/.nzbget/nzbget -D (code=exited, status=0/SUCCESS)

Dez 31 16:16:21 raspberrypi systemd[1]: nzbget.service: Control process exited, code=exited status=1
Dez 31 16:16:21 raspberrypi systemd[1]: Failed to start NZBGet Daemon.
Dez 31 16:16:21 raspberrypi systemd[1]: nzbget.service: Unit entered failed state.
Dez 31 16:16:21 raspberrypi systemd[1]: nzbget.service: Failed with result 'exit-code'.
Dez 31 16:16:21 raspberrypi systemd[1]: nzbget.service: Service hold-off time over, scheduling restart.
Dez 31 16:16:21 raspberrypi systemd[1]: Stopped NZBGet Daemon.
Dez 31 16:16:21 raspberrypi systemd[1]: nzbget.service: Start request repeated too quickly.
Dez 31 16:16:21 raspberrypi systemd[1]: Failed to start NZBGet Daemon.
Dez 31 16:16:21 raspberrypi systemd[1]: nzbget.service: Unit entered failed state.
Dez 31 16:16:21 raspberrypi systemd[1]: nzbget.service: Failed with result 'exit-code'.
Wird hier jemand schlau daraus.

Richard wünscht Guten Rutsch

ReturnToSender
Beiträge: 123
Registriert: 23.10.2018 18:06:09

Re: Autostart über Systemd geht nur manchmal

Beitrag von ReturnToSender » 31.12.2018 19:11:26

Du kannst im Journal nachsehen, ob das Netzwerk später als 16:16:21 erfolgreich verbunden war. Wenn ja, ist das vermutlich die Ursache für den Fehler. In dem Fall muss Du einfach nur darauf warten, dass das Netzwerk fertig verbunden ist und dann erst den Autostart duchführen.

Richard
Beiträge: 639
Registriert: 11.10.2012 14:18:37
Lizenz eigener Beiträge: GNU General Public License

Re: Autostart über Systemd geht nur manchmal

Beitrag von Richard » 31.12.2018 20:18:03

Wie lauten denn die Meldungen, die da stehen müssten? Hab erstmal nichts weiter gesehen was irgendwie auf Netzwerkverbindung hinweist. Hab aber da hier gefunden:

Code: Alles auswählen

Dez 31 16:16:03 raspberrypi systemd[1]: dev-disk-by\x2duuid-e3913952\x2d81a1\x2d420a\x2d83ab\x2d7ae62809f431.device: Job dev-disk-by\x2duuid-e3913952\x2d81a1\x2d420a\x2d83ab\x2d7ae62809f431.device/start timed out.
Dez 31 16:16:03 raspberrypi systemd[1]: Timed out waiting for device dev-disk-by\x2duuid-e3913952\x2d81a1\x2d420a\x2d83ab\x2d7ae62809f431.device.
Dez 31 16:16:03 raspberrypi systemd[1]: Dependency failed for /media/usb.
Dez 31 16:16:03 raspberrypi systemd[1]: media-usb.mount: Job media-usb.mount/start failed with result 'dependency'.
Dez 31 16:16:03 raspberrypi systemd[1]: Dependency failed for File System Check on /dev/disk/by-uuid/e3913952-81a1-420a-83ab-7ae62809f431.
Dez 31 16:16:03 raspberrypi systemd[1]: systemd-fsck@dev-disk-by\x2duuid-e3913952\x2d81a1\x2d420a\x2d83ab\x2d7ae62809f431.service: Job systemd-fsck@dev-disk-by\x2duuid-e3913952\x2d81a1\x2d420a\x2d83ab\x2d7ae62809f431.service/start failed with result 'dependency'.
Dez 31 16:16:03 raspberrypi systemd[1]: dev-disk-by\x2duuid-e3913952\x2d81a1\x2d420a\x2d83ab\x2d7ae62809f431.device: Job dev-disk-by\x2duuid-e3913952\x2d81a1\x2d420a\x2d83ab\x2d7ae62809f431.device/start failed with result 'timeout'.
Dez 31 16:16:04 raspberrypi kernel: scsi 0:0:0:0: Direct-Access     Lexar    USB Flash Drive  1100 PQ: 0 ANSI: 6
Dez 31 16:16:04 raspberrypi kernel: sd 0:0:0:0: [sda] 125038592 512-byte logical blocks: (64.0 GB/59.6 GiB)
Dez 31 16:16:04 raspberrypi kernel: sd 0:0:0:0: [sda] Write Protect is off
Dez 31 16:16:04 raspberrypi kernel: sd 0:0:0:0: [sda] Mode Sense: 43 00 00 00
Dez 31 16:16:04 raspberrypi kernel: sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
Dez 31 16:16:04 raspberrypi kernel:  sda: sda1
Dez 31 16:16:04 raspberrypi kernel: sd 0:0:0:0: [sda] Attached SCSI removable disk
Dez 31 16:16:04 raspberrypi kernel: sd 0:0:0:0: Attached scsi generic sg0 type 0
Dez 31 16:16:08 raspberrypi systemd-fsck[94]: Durchgang 2: Verzeichnisstruktur wird geprüft
Dez 31 16:16:13 raspberrypi systemd-fsck[94]: Durchgang 3: Verzeichnisverknüpfungen werden geprüft
Dez 31 16:16:13 raspberrypi systemd-fsck[94]: Durchgang 4: Referenzzähler werden überprüft
Dez 31 16:16:14 raspberrypi systemd-fsck[94]: Durchgang 5: Zusammengefasste Gruppeninformation wird geprüft
Dez 31 16:16:14 raspberrypi systemd-fsck[94]: root: 227733/932880 Dateien (0.3% nicht zusammenhängend), 1646067/3738624 Blöcke
/media/usb ist der USB-Stick auf dem auch Dateien liegen die nzbget nutzt. Verweigert er vielleicht zunächst das einbinden wegen eines Dateisystemchecks? Manuell ging das starten von nzbget immer.

ReturnToSender
Beiträge: 123
Registriert: 23.10.2018 18:06:09

Re: Autostart über Systemd geht nur manchmal

Beitrag von ReturnToSender » 31.12.2018 20:23:10

Code: Alles auswählen

journalctl -b | grep -i network
Das macht aber nur dann Sinn, unmittelbar nachdem das Problem aufgetreten ist. Und dann einfach mal die Zeiten vergleichen. Ob das wirklich der Fehler ist, weiss ich nicht, aber es ist eine Möglichkeit.

Richard
Beiträge: 639
Registriert: 11.10.2012 14:18:37
Lizenz eigener Beiträge: GNU General Public License

Re: Autostart über Systemd geht nur manchmal

Beitrag von Richard » 31.12.2018 20:26:25

Da kommt das hier:

Code: Alles auswählen

Dez 31 16:16:16 raspberrypi systemd[1]: Starting Raise network interfaces...
Dez 31 16:16:16 raspberrypi systemd[1]: Starting Network Time Synchronization...
Dez 31 16:16:16 raspberrypi systemd[1]: Started Network Time Synchronization.
Dez 31 16:16:17 raspberrypi avahi-daemon[354]: Network interface enumeration completed.
Dez 31 16:16:17 raspberrypi systemd[1]: Started Raise network interfaces.
Dez 31 16:16:17 raspberrypi systemd[1]: Reached target Network.
Dez 31 16:16:18 raspberrypi systemd[1]: Reached target Network is Online.
Dez 31 16:16:21 raspberrypi systemd[1]: Reached target Host and Network Name Lookups.
Dez 31 16:16:22 raspberrypi systemd[697]: Listening on GnuPG network certificate management daemon.
Dez 31 16:16:22 raspberrypi systemd[628]: Listening on GnuPG network certificate management daemon.
Dez 31 16:16:23 raspberrypi systemd[628]: Closed GnuPG network certificate management daemon.
Dez 31 16:16:23 raspberrypi systemd[1014]: Listening on GnuPG network certificate management daemon.
Da sieht es so aus als ob der Start vorher passiert, außer die komischen GnuPG-Sachen sind wichtig, die liegen danach.

ReturnToSender
Beiträge: 123
Registriert: 23.10.2018 18:06:09

Re: Autostart über Systemd geht nur manchmal

Beitrag von ReturnToSender » 31.12.2018 20:36:19

Das sagt leider nichts aus. Versuch noch mal folgendes:

Code: Alles auswählen

journalctl -b | egrep -i "dhc|ipv"

Richard
Beiträge: 639
Registriert: 11.10.2012 14:18:37
Lizenz eigener Beiträge: GNU General Public License

Re: Autostart über Systemd geht nur manchmal

Beitrag von Richard » 31.12.2018 20:38:33

Da kommt das hier

Code: Alles auswählen

Dez 31 16:16:16 raspberrypi systemd[1]: Starting dhcpcd on all interfaces...
Dez 31 16:16:16 raspberrypi dhcpcd[358]: dev: loaded udev
Dez 31 16:16:16 raspberrypi dhcpcd[358]: forked to background, child pid 388
Dez 31 16:16:17 raspberrypi dhcpcd-run-hooks[424]: wlan0: starting wpa_supplicant
Dez 31 16:16:17 raspberrypi systemd[1]: Started dhcpcd on all interfaces.
Dez 31 16:16:17 raspberrypi systemd[1]: Starting dnsmasq - A lightweight DHCP and caching DNS server...
Dez 31 16:16:18 raspberrypi minissdpd[460]: Failed to add IPv4 multicast membership for interface 0.0.0.0.
Dez 31 16:16:19 raspberrypi kernel: IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
Dez 31 16:16:19 raspberrypi dhcpcd[388]: eth0: waiting for carrier
Dez 31 16:16:19 raspberrypi dhcpcd[388]: wlan0: waiting for carrier
Dez 31 16:16:19 raspberrypi dhcpcd[388]: wlan0: carrier acquired
Dez 31 16:16:19 raspberrypi kernel: IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
Dez 31 16:16:19 raspberrypi kernel: IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
Dez 31 16:16:19 raspberrypi dhcpcd[388]: DUID 00:01:00:01:21:b0:de:64:b8:27:eb:49:c3:10
Dez 31 16:16:19 raspberrypi dhcpcd[388]: wlan0: IAID eb:f4:81:e2
Dez 31 16:16:19 raspberrypi dhcpcd[388]: wlan0: adding address fe80::333a:529f:4c6b:3f05
Dez 31 16:16:19 raspberrypi dhcpcd[388]: wlan0: carrier lost
Dez 31 16:16:21 raspberrypi systemd[1]: Started dnsmasq - A lightweight DHCP and caching DNS server.
Dez 31 16:16:22 raspberrypi dhcpcd[388]: wlan0: deleting address fe80::333a:529f:4c6b:3f05
Dez 31 16:16:22 raspberrypi dhcpcd[388]: eth0: carrier acquired
Dez 31 16:16:22 raspberrypi dhcpcd[388]: eth0: IAID eb:a1:d4:b7
Dez 31 16:16:22 raspberrypi dhcpcd[388]: eth0: adding address fe80::486:5003:1491:90c6
Dez 31 16:16:22 raspberrypi dhcpcd[388]: eth0: probing address 192.168.10.23/24
Dez 31 16:16:22 raspberrypi dhcpcd[388]: eth0: soliciting an IPv6 router
Dez 31 16:16:23 raspberrypi avahi-daemon[354]: Joining mDNS multicast group on interface eth0.IPv6 with address fe80::486:5003:1491:90c6.
Dez 31 16:16:23 raspberrypi avahi-daemon[354]: New relevant interface eth0.IPv6 for mDNS.
Dez 31 16:16:23 raspberrypi dhcpcd[388]: eth0: Router Advertisement from fe80::3681:c4ff:fefe:e559
Dez 31 16:16:23 raspberrypi dhcpcd[388]: eth0: adding address 2003:cf:7711:9a00:1a99:60:87a5:b2f8/64
Dez 31 16:16:23 raspberrypi dhcpcd[388]: eth0: adding route to 2003:cf:7711:9a00::/64
Dez 31 16:16:23 raspberrypi dhcpcd[388]: eth0: adding default route via fe80::3681:c4ff:fefe:e559
Dez 31 16:16:23 raspberrypi dhcpcd[388]: eth0: requesting DHCPv6 information
Dez 31 16:16:24 raspberrypi avahi-daemon[354]: Leaving mDNS multicast group on interface eth0.IPv6 with address fe80::486:5003:1491:90c6.
Dez 31 16:16:24 raspberrypi avahi-daemon[354]: Joining mDNS multicast group on interface eth0.IPv6 with address 2003:cf:7711:9a00:1a99:60:87a5:b2f8.
Dez 31 16:16:27 raspberrypi dhcpcd[388]: eth0: using static address 192.168.10.23/24
Dez 31 16:16:27 raspberrypi dhcpcd[388]: eth0: adding route to 192.168.10.0/24
Dez 31 16:16:27 raspberrypi dhcpcd[388]: eth0: adding default route via 192.168.10.1
Dez 31 16:16:27 raspberrypi avahi-daemon[354]: Joining mDNS multicast group on interface eth0.IPv4 with address 192.168.10.23.
Dez 31 16:16:27 raspberrypi avahi-daemon[354]: New relevant interface eth0.IPv4 for mDNS.
Dez 31 16:16:27 raspberrypi avahi-daemon[354]: Registering new address record for 192.168.10.23 on eth0.IPv4.
Dez 31 16:16:38 raspberrypi java[457]: 1|org.jdownloader.update.launcher.SecondLevelLauncher.log 31.12.18 16:16:38 - INFO [ org.appwork.utils.Application(printSystemProperties) ] -> SysProp: java.net.preferIPv4Stack: true
Dez 31 16:17:24 raspberrypi java[457]: 1|Log.L.log 31.12.18 16:17:24 - FINER [ jd.SecondLevelLaunch(mainStart) ] -> java.net.preferIPv4Stack=true

ReturnToSender
Beiträge: 123
Registriert: 23.10.2018 18:06:09

Re: Autostart über Systemd geht nur manchmal

Beitrag von ReturnToSender » 31.12.2018 20:41:39

Da sieht man es. Das Netzwerk wird zwar früher gestartet, ist aber erst später fertig verbunden. Die schmutzige Lösung wäre als ersten Exec-Befehl einen

Code: Alles auswählen

ExecStartPre=/bin/sleep 10
einzufügen.

Richard
Beiträge: 639
Registriert: 11.10.2012 14:18:37
Lizenz eigener Beiträge: GNU General Public License

Re: Autostart über Systemd geht nur manchmal

Beitrag von Richard » 31.12.2018 21:38:47

Das teste ich mal. Danke.

JTH
Moderator
Beiträge: 3014
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: Autostart über Systemd geht nur manchmal

Beitrag von JTH » 31.12.2018 22:04:49

Wenn ein Service fertig konfiguriertes Netzwerk voraussetzt, sollte man ihn von network-online.target abhängig machen: Cut the crap! How do I make sure that my service starts after the network is really online?
Manchmal bekannt als Just (another) Terminal Hacker.

Benutzeravatar
MartinV
Beiträge: 788
Registriert: 31.07.2015 19:38:52
Wohnort: Hyperion
Kontaktdaten:

Re: Autostart über Systemd geht nur manchmal

Beitrag von MartinV » 31.12.2018 22:40:51

Mir fällt auf, daß Du "User=pi" definiert hast.
Nach meinem Verständnis können User erst nach multiuser.target festgelegt werden.
Es könnte richtig sein, außerdem einzutragen:

Code: Alles auswählen

After=multiuser.target
Die Vernunft kann einem schon leidtun. Sie verliert eigentlich immer.

JTH
Moderator
Beiträge: 3014
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: Autostart über Systemd geht nur manchmal

Beitrag von JTH » 01.01.2019 11:04:48

MartinV hat geschrieben: ↑ zum Beitrag ↑
31.12.2018 22:40:51
Nach meinem Verständnis können User erst nach multiuser.target festgelegt werden.
Das ist Quatsch. multi-user.target ist nur dafür zuständig, alle Dienste und Co. zu starten, die für den normalen Mehrbenutzerbetrieb nötig sind. Es impliziert nicht, dass (mehrere) Benutzer erst nach dem Start des Targets benutzt werden können.

Siehe:

Code: Alles auswählen

$ grep multi-user.target /lib/systemd/system/*.service
Dort taucht kein After=multi-user.target auf.
Manchmal bekannt als Just (another) Terminal Hacker.

ReturnToSender
Beiträge: 123
Registriert: 23.10.2018 18:06:09

Re: Autostart über Systemd geht nur manchmal

Beitrag von ReturnToSender » 01.01.2019 12:59:15

MartinV hat geschrieben: ↑ zum Beitrag ↑
31.12.2018 22:40:51
Mir fällt auf, daß Du "User=pi" definiert hast.
Nach meinem Verständnis können User erst nach multiuser.target festgelegt werden.
"Quatsch" ist es ganz sicher nicht, allenfalls eine nicht ganz richtige Interpretation von systemd-Eigenschaften, denen man allerdings wirklich leicht zum Opfer fallen kann. Die Definition des User "pi" bedeutet hier nur, dass der gestartete Prozess unter dessen UID läuft und nicht wie üblich unter UID 0. Das multiuser.target hat hierfür keine Bedeutung. Wenn man allerdings die Absicht hat, mit Angabe des User "pi" die Sicherheit zu erhöhen, weil der Prozess damit nicht mit root-Rechten läuft, ist das möglicherweise trügerisch, denn "pi" ist normalerweise in der Gruppe "sudo" enthalten. Ich halte allerdings Bewertungen für Quatsch und damit für entbehrlich.

JTH
Moderator
Beiträge: 3014
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: Autostart über Systemd geht nur manchmal

Beitrag von JTH » 01.01.2019 14:27:05

ReturnToSender hat geschrieben: ↑ zum Beitrag ↑
01.01.2019 12:59:15
Ich halte allerdings Bewertungen für Quatsch und damit für entbehrlich.
Das sollte keinesfalls eine (persönliche) Bewertung sein, nur eine zugegeben flapsige Art zu sagen, dass diese technische Aussage nicht stimmt. Aber ich werde mir merken, dass das mir umgangssprachlich normal geläufige „Quatsch“ hier aktuell anscheinend auch ein zu wertender Ausdruck sein kann …

ReturnToSender hat geschrieben: ↑ zum Beitrag ↑
01.01.2019 12:59:15
[…] allenfalls eine nicht ganz richtige Interpretation von systemd-Eigenschaften, denen man allerdings wirklich leicht zum Opfer fallen kann.
Dem stimm ich völlig zu. Allerdings muss man bei technischen Themen m.M.n. auch noch „falsch“, statt „nicht ganz richtig“ sagen dürfen, ohne dass das persönlich genommen wird.
Manchmal bekannt als Just (another) Terminal Hacker.

Benutzeravatar
MartinV
Beiträge: 788
Registriert: 31.07.2015 19:38:52
Wohnort: Hyperion
Kontaktdaten:

Re: Autostart über Systemd geht nur manchmal

Beitrag von MartinV » 01.01.2019 14:39:47

Ich gestehe, daß ich mich von "Quatsch" erst einmal ein bißchen zurückgestoßen/beleidigt fühlte, und mich freute, in Schutz genommen zu werden.
Ich will aber auch sagen, daß ich direkte Ansagen schätze, ohne daß ich zu sehr die Goldwaage anlege. Allzu empfindlich bin ich nicht, mein Toleranzbereich ist eher weit ausgelegt, und ich unterstelle erst einmal, daß es nicht bös gemeint ist.

In der Antwort zu sagen: "Ist falsch" ist jedenfalls sachlicher und neutraler (und damit weniger potentiell verletzlich) als "Quatsch" (was leichter persönlich genommen werden kann).

Kurz gesagt: Für mich ist alles gut!
Generell gesprochen: Es ist weise, klare Ansagen zu machen, ohne daß der andere sich persönlich kritisiert fühlt. Gleichzeitig muß es möglich sein, eine sachlich falsche Aussage wie die meine klar als "falsch" zu benennen. Ein Zuviel an Watte kann sonst zu Unklarheit führen.

Danke an euch beide, @JTH und @ReturnToSender!
Die Vernunft kann einem schon leidtun. Sie verliert eigentlich immer.

Benutzeravatar
MSfree
Beiträge: 10686
Registriert: 25.09.2007 19:59:30

Re: Autostart über Systemd geht nur manchmal

Beitrag von MSfree » 01.01.2019 15:00:45

Back to topic :wink:

Eine UID ist (bzw. war traditionell) ein 16-Bit Integer, die einem Benutzernamen zugeordnet ist. Die Zuordnung findet mithilfe der Datei /etc/passwd statt, so daß die verschiedenen UIDs ab dem Zeitpunkt zur Verfügung stehen, nachdem das /-Dateisystem gemountet wurde, also schon als eine der ersten Maßnahmen im Bootprozeß. Man kann also schon von fast Anfang an auf Benutzernamen zugreifen. Mit dem Multiuser-Targert hat das aber in der Tat gar nichts zu tun.

Wir wissen hier aber im Moment noch nicht, ob das Problem von Richard mit dem einen oder anderen Vorschlag gelöst werden konnte.

Code: Alles auswählen

After=multiuser.target
ist sicher keine allzu schlechte Idee, zu dem Zeitpunkt sollte eigentlich alles notwerndige laufen.

Ich hätte noch dem Vorschlag, statt

Code: Alles auswählen

Restart=on-failure
würde ich es mal mit

Code: Alles auswählen

Restart=always
versuchen. Dann wird der Dientst halt so lange immer wieder gestartet, wenn er sich verabschiedet hat. So ganz ungefährlich ist die Option allerdings nicht, denn das kann bei fehlerhafter Software auch zu unnötiger Systemlast führen.

Richard
Beiträge: 639
Registriert: 11.10.2012 14:18:37
Lizenz eigener Beiträge: GNU General Public License

Re: Autostart über Systemd geht nur manchmal

Beitrag von Richard » 01.01.2019 18:13:56

JTH hat geschrieben: ↑ zum Beitrag ↑
31.12.2018 22:04:49
Wenn ein Service fertig konfiguriertes Netzwerk voraussetzt, sollte man ihn von network-online.target abhängig machen: Cut the crap! How do I make sure that my service starts after the network is really online?
Sollte man dann aber auch nicht eher Requires= statt After= verwenden?

JTH
Moderator
Beiträge: 3014
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: Autostart über Systemd geht nur manchmal

Beitrag von JTH » 01.01.2019 19:13:42

Requires= ist eine strengere Form von Wants=. After= und das Gegenstück Before= sind davon unabhängig, die können auch ohne Requires= oder Wants= benutzt werden.

Bei dir würden Requires= und Wants= den gleichen Effekt haben, üblich ist für diese Art „loserer“ Abhängigkeit das Wants=. Das After=network-online.target ist in beiden Fällen zusätzlich notwendig.
Manchmal bekannt als Just (another) Terminal Hacker.

Richard
Beiträge: 639
Registriert: 11.10.2012 14:18:37
Lizenz eigener Beiträge: GNU General Public License

Re: Autostart über Systemd geht nur manchmal

Beitrag von Richard » 05.01.2019 19:17:10

ReturnToSender hat geschrieben: ↑ zum Beitrag ↑
31.12.2018 20:41:39
Da sieht man es. Das Netzwerk wird zwar früher gestartet, ist aber erst später fertig verbunden.
Ich muss hier mal fragen an welchem Meldungen du das genau siehst?

Es scheint mit

Code: Alles auswählen

After=multiuser.target
After=network-online.target
jetzt zu laufen. Ohne multiuser.target gab es nochmal Probleme. Beim JDownloader hab ich ein ähnliches Problem, da ist der Prozess aber 'dead' und nicht inaktiv. Da es ein Java-Programm ist dauert es länger. Da hab ich jetzt

Code: Alles auswählen

Wants=network-online.target
After=multiuser.target
After=network-online.target
drin stehen und die letzten beiden Starts liefen. Sollte hier Wants= hinter After= stehen oder ist das egal? Das Wants= hab ich so aus einem Beitrag im Netz übernommen. JDownloader headless zu betreiben ist etwas knifflig.

mat6937
Beiträge: 2927
Registriert: 09.12.2014 10:44:00

Re: Autostart über Systemd geht nur manchmal

Beitrag von mat6937 » 05.01.2019 19:36:14

Richard hat geschrieben: ↑ zum Beitrag ↑
05.01.2019 19:17:10
jetzt zu laufen. Ohne multiuser.target gab es nochmal Probleme.
Poste mal die Ausgaben von:

Code: Alles auswählen

systemctl list-units --all | grep -i multi-user

Code: Alles auswählen

systemctl list-units --all | grep -i multiuser
Gibt es das multiuser.target auf deinem PI?

BTW: Das multi-user.target in deiner service unit (siehe oben), durch den Schlüssel "WantedBy" in der Section "[Install]", legt fest wann die service unit gestartet wird. Es gibt auch das Target "graphical.target".
Ist dein PI so konfiguriert, dass der user (hier pi) sich automatisch einloggt (... nur falls für deine Anwendungen/service units erforderlich)?

ReturnToSender
Beiträge: 123
Registriert: 23.10.2018 18:06:09

Re: Autostart über Systemd geht nur manchmal

Beitrag von ReturnToSender » 05.01.2019 21:05:42

Richard hat geschrieben: ↑ zum Beitrag ↑
05.01.2019 19:17:10
ReturnToSender hat geschrieben: ↑ zum Beitrag ↑
31.12.2018 20:41:39
Da sieht man es. Das Netzwerk wird zwar früher gestartet, ist aber erst später fertig verbunden.
Ich muss hier mal fragen an welchem Meldungen du das genau siehst?
An der Uhrzeit. Deine Unit ist bereits um 16:16:21 gescheitert, das Netzwerk ist aber erst um 16:16:27 fertig verbunden. Ich würde es mit dem ExecStartPre versuchen, ich denke,das löst Dein Problem

Richard
Beiträge: 639
Registriert: 11.10.2012 14:18:37
Lizenz eigener Beiträge: GNU General Public License

Re: Autostart über Systemd geht nur manchmal

Beitrag von Richard » 07.01.2019 13:39:59

Schon klar über die Uhrzeit, aber welche Meldung wäre das?

ReturnToSender
Beiträge: 123
Registriert: 23.10.2018 18:06:09

Re: Autostart über Systemd geht nur manchmal

Beitrag von ReturnToSender » 07.01.2019 15:13:16

Richard hat geschrieben: ↑ zum Beitrag ↑
07.01.2019 13:39:59
Schon klar über die Uhrzeit, aber welche Meldung wäre das?
Das ist mit Netzwerken ein wenig komplizierter bis zu der Feststellung, jetzt ist es verbunden. Mit einiger Wahrscheinlichkeit ist es dieser Zeitpunkt in Deinem Log-Auszug, also erst nach diesen Meldungen:

Code: Alles auswählen

Dez 31 16:16:27 raspberrypi dhcpcd[388]: eth0: using static address 192.168.10.23/24
Dez 31 16:16:27 raspberrypi dhcpcd[388]: eth0: adding route to 192.168.10.0/24
Dez 31 16:16:27 raspberrypi dhcpcd[388]: eth0: adding default route via 192.168.10.1
Das bezieht sich aber jetzt nur auf eine LAN-interne IP-Adresse, die nicht internet-tauglich ist. 192.168.'er Adressen sind nie internet-tauglich. Das heisst, der DSL-Router selber müsste noch neben seiner LAN-internen Adresse (192.168.10.1) zusätzlich noch eine öffentliche IPv4-Adresse haben, um den PCs im LAN den Zugang ins Internet überhaupt zu ermöglichen. Aber, die hätte er wiederum nicht, wenn es bei Dir ein echter DS-Lite-Anschluss wäre, denn dann ist der Zugang ins Internet nur über eine öffentliche IPv6-Adresse möglich. Man erkennt bei Dir nämlich auch eine IPv6-Konfiguration. Ich weiss nicht, ob die modernen privaten DSL-Router sowas wie ein IPv4-to-IPv6-NAT durchführen können, glaub ich aber nicht. Also bei DS-Lite muss sich der PC erst mal via Soliciting aufmerksam machen, damit er dann via Advertisement eine Site-ID vom Router bekommt, mit der er schließlich selber via SLAAC eine eigene öffentliche IPv6-Adresse generieren kann.

Sorry, wenn das jetzt hier so ein wüstes Info-Gemenge ist, aber es soll Dir deutlich machen, dass eine Netzwerkverbindung nicht einfach nur ein umgelegter Schalter ist, sondern eine ganze Latte von Einzelschritten erfordert, was quasi einen komplexen Prozess darstellt, der leider eben eine gewisse Zeit beansprucht. Alle anderen Jobs, die gleichzeitig oder vorher starten und das Netzwerk benötigen, fallen halt auf die Nase. Also muss man das irgendwie verzögern. Darüber hinaus gibt es unter Debian nicht nur einen Weg, ein Netzwerk zu verbinden, sondern viele Möglichkeiten. Um das Log wirklich passend zu interpretieren, müsste man die genauen Gegebenheiten bei Dir kennen. Ohne dem muss sich die Interpretation an Standards orientieren... womit man leider manchmal auch leicht daneben liegen kann.

Richard
Beiträge: 639
Registriert: 11.10.2012 14:18:37
Lizenz eigener Beiträge: GNU General Public License

Re: Autostart über Systemd geht nur manchmal

Beitrag von Richard » 10.01.2019 21:04:35

Für den JDownloader hab ich es jetzt so gemacht, 2x rebooten lief problemlos. Mal sehen ob es in Zukunft auch so geht.

Code: Alles auswählen

[Unit]
Description=JDownloader
After=network.target

[Service]
Type=oneshot
UMask=000
ExecStart=/usr/bin/java -jar /home/pi/bin/jdownloader/JDownloader.jar
User=pi
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
Hab ich mir aus dem Tiefen des Netzes ergoogelt.

Antworten