staging.inyokaproject.org

systemd/systemctl

Status: Gelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |
Dieses Thema ist die Diskussion des Artikels systemd/systemctl.

senden9

Avatar von senden9

Anmeldungsdatum:
8. Februar 2010

Beiträge: 965

Hallo,

sicher das die Beschreibung für enable unter „Kommandos für Unit-Dateien“ korrekt ist? Vor allem der zweite Satz stört mich. Falls das noch jemand anderen außer mir komisch vor kommt bearbeite ich den Artikel gerne.

noisefloor Team-Icon

Ehemaliger
(Themenstarter)
Avatar von noisefloor

Anmeldungsdatum:
6. Juni 2006

Beiträge: 28316

Hallo,

was stört dich denn am 2. Satz?

Gruß, noisefloor

senden9

Avatar von senden9

Anmeldungsdatum:
8. Februar 2010

Beiträge: 965

Gut, das hätte ich gleich ausführlicher Beschreiben können. Dort steht „Danach kann die zugehörige Unit gestartet werden.“. Ein Service kann aber auch gestartet (start) werden ohne das er zuvor aktiviert (enable) wurde.

noisefloor Team-Icon

Ehemaliger
(Themenstarter)
Avatar von noisefloor

Anmeldungsdatum:
6. Juni 2006

Beiträge: 28316

Hallo,

Ein Service kann aber auch gestartet werden ohne das er zuvor aktiviert wurde.

Bestehend Units - ja, klar. Neu angelegte Units - IMHO nein. Die müssen erst aktiviert werden, sonst sind diese nicht startbar.

Gruß, noisefloor

senden9

Avatar von senden9

Anmeldungsdatum:
8. Februar 2010

Beiträge: 965

OK. Das ist möglich. Reicht in dem Fall nicht bereits ein daemon-reload? (Ich hab es nicht getestet.)

noisefloor Team-Icon

Ehemaliger
(Themenstarter)
Avatar von noisefloor

Anmeldungsdatum:
6. Juni 2006

Beiträge: 28316

Hallo,

nein. Wie gesagt, wenn du dir selber eine Unit anlegst, muss die zwingend aktiviert werden, sonst geht nichts

Steht ja auch über der Tabelle:

Units bestehen aus ein oder mehreren Dateien. Damit diese als Unit ausgeführt werden, muss die Unit-Datei erst aktiviert werden.

Habe den 2. Satz bei enable mal geändert. Hoffe, es ist jetzt klarer ☺

Gruß, noisefloor

senden9

Avatar von senden9

Anmeldungsdatum:
8. Februar 2010

Beiträge: 965

Ich hab es doch einmal probiert. Habe ein Minimalbeispiel erstellt:

## Inhalt der frisch angelegten Datei /etc/systemd/system/testit.service
[Unit]
Description=TestIt

[Service]
Type=oneshot
ExecStart=/usr/bin/touch /tmp/testIt

[Install]
$ sudo systemctl daemon-reload
$ sudo systemctl start testit.service

Danach lag unter /tmp/testIt eine Datei mit dem aktuellem Zeitstempel.

noisefloor Team-Icon

Ehemaliger
(Themenstarter)
Avatar von noisefloor

Anmeldungsdatum:
6. Juni 2006

Beiträge: 28316

Hallo,

hab's auch gerade mal in der Manpage nachgeschaut - stimmt in der Tat nicht ganz, was im Wiki stand bzw. was ich oben gesagt habe. Für den _automatischen_ Start (z.B. beim Systemstart) muss die Unit aktiviert sein. Der manuelle Start geht immer.

Hab's schon im Wiki korrigiert - bitte mal drüber schauen, ob's jetzt besser / verständlicher ist.

Gruß, noisefloor

senden9

Avatar von senden9

Anmeldungsdatum:
8. Februar 2010

Beiträge: 965

Viel besser. ☺

Ich würde eventuell „Danach kann die zugehörige Unit automatisch (z.B. beim Systemstart) gestartet werden“ durch „Danach wird die zugehörige Unit automatisch (z.B. beim Systemstart) gestartet“ ersetzen. Das geht aber schon fast Richtung Wortklauberei und kann auch so bleiben.

Einen Anmerkung noch zum Kapitel „Benutzung“: Eventuell sollte man beim Absatz zu Pattern erwähnen das man diese in Anführungszeichen setzen oder escapen sollte da sonnst Bash/zsh versucht das Pattern zu interpretieren. Bsp:

$ systemctl status a*   # Bash/zsh greift ein und vervollständigt auf Dateinamen.
● avahi.service
   Loaded: not-found (Reason: No such file or directory)
   Active: inactive (dead)
[…]

$ systemctl status 'a*' # OK
$ systemctl status a\*  # Auch OK. Würde ich so aber nie schreiben.

ChickenLipsRfun2eat Team-Icon

Supporter
Avatar von ChickenLipsRfun2eat

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12070

Habe in kurzer Weise systemctl edit eingefügt, da es ein nettes Tool ist und erwähnt gehört.

trollsportverein

Avatar von trollsportverein

Anmeldungsdatum:
21. Oktober 2010

Beiträge: 2627

Mal schauen ob es eher in diesen Artikel gut untergebracht wäre, oder seinen Platz in den Problembehebungen von systemd finden könnte.

Wenn systemd abstürzt lässt sich (erstmal) nicht (sauber) rebooten: https://twitter.com/docsmooth/status/800639999364448256.

Dagegen hilft quasi Meister Yoda doppelte Kraft Du nutzen musst:

systemctl reboot --force --force

So kann man sich dass dann auch als Starwars Fan merken. 😉

Der Tipp kam von dort: https://twitter.com/LucasWerkmeistr/status/800744552642396161. Dankeschön.

noisefloor Team-Icon

Ehemaliger
(Themenstarter)
Avatar von noisefloor

Anmeldungsdatum:
6. Juni 2006

Beiträge: 28316

Hallo,

passt denke ich besser in die Problembehebung.

Was passiert denn, wenn systemd abstürzt und man rebooten will? Kommt dann ein Fehler oder so?

Gruß, noisefloor

trollsportverein

Avatar von trollsportverein

Anmeldungsdatum:
21. Oktober 2010

Beiträge: 2627

Mit abgestürztem systemd lässt sich weder rebooten noch runterfahren ohne das --force --force. Es sieht dann so aus wie dort im Bild: https://twitter.com/docsmooth/status/800639999364448256. Es bleibt dann noch der Reset Knopf bei Desktop Maschinen, da man dort mit dem Finger ja noch direkt an die Hardware kommt. Blöd ist es aber wohl, wenn es etwa eine remote gesteuerte Maschine ist, falls das dann mit dem --force --force Schalter unbekannt ist.

Auszug aus der freedesktop.org systemd Manpage zum --force --force Schalter:

-f, --force

When used with enable, overwrite any existing conflicting symlinks.

When used with edit, create all of the specified units which do not already exist.

When used with halt, poweroff, reboot or kexec, execute the selected operation without shutting down all units. However, all processes will be killed forcibly and all file systems are unmounted or remounted read-only. This is hence a drastic but relatively safe option to request an immediate reboot. If --force is specified twice for these operations (with the exception of kexec), they will be executed immediately, without terminating any processes or unmounting any file systems. Warning: specifying --force twice with any of these operations might result in data loss. Note that when --force is specified twice the selected operation is executed by systemctl itself, and the system manager is not contacted. This means the command should succeed even when the system manager hangs or crashed.

Quelle: https://www.freedesktop.org/software/systemd/man/systemctl.html.

noisefloor Team-Icon

Ehemaliger
(Themenstarter)
Avatar von noisefloor

Anmeldungsdatum:
6. Juni 2006

Beiträge: 28316

Hallo,

hab's mal im Artikel systemd/Problembehebung mit eingebaut.

Gruß, noisefloor

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 7816

Ergänzungen zu edit und System-Kommandos, Test 20.04