Du bist nicht angemeldet.

#1 31.07.2012 21:11:17

stoerti
Gast

Umstieg von SysVinit auf systemd

Hi,
ich bin neugierig geworden und möchte gerne, da es in absehbarer Zeit so oder so kommen wird (Zitat: "systemd will use /etc/rc.conf if these files are absent (Note this is temporary and not a long-term solution. It is strongly advised to use the systemd configuration files on any system, since initscripts can use them)."), mein System vollständig auf systemd umstellen.

Bisher habe ich, bis auf libsystemd und systemd-tools, mit systemd noch nichts zu tun. Das heißt, dass ich bisher noch die konventionelle rc.conf mit den Einträgen LOCALE, DAEMON_LOCALE, HARDWARECLOCK, TIMEZONE, KEYMAP, CONSOLEFONT, CONSOLEMAP, USECOLOR, MODULES, UDEV_TIMEOUT, USEDMRAID, USEBTRFS, USELVM, HOSTNAME, interface, NETWORK_PERSIST und DAEMONS nutze.

Welche Schritte genau, außer das Anlegen von /etc/hostname, /etc/vconsole.conf, /etc/locale.conf, /etc/timezone und einigen weiteren nativen Konfigurationsdateien, muss ich noch beachten und ausführen?

Hat so einen Umstieg, ohne Neuinstallation von Arch, schonmal jemand gemacht? Danke schonmal an alle ...

#2 31.07.2012 21:34:00

fs4000
Mitglied

Re: Umstieg von SysVinit auf systemd

Du könntest noch schauen, dass /etc/localtime korrekt verlinkt ist. (Sollte allerdings bereits der Fall sein.)
Und natürlich musst du deine ganzen Dienste mit "systemctl enable" aktivieren.

Beitrag geändert von fs4000 (31.07.2012 21:34:50)

Offline

#3 31.07.2012 22:07:15

stoerti
Gast

Re: Umstieg von SysVinit auf systemd

/etc/localtime ist bereits ordnungsgemäß auf /usr/share/zoneinfo/Europe/Berlin verlinkt.
Wo und wie genau muss ich die Dienste aktivieren?
Muss ich systemd dann, wenn ich das durchziehe (bisher plane ich ja nur und bereite vor), in die rc.conf als DAEMON eintragen oder wie ersetze ich den init-Prozess?
Und, ach ja, muss ich, außer das Paket systemd, dann noch mehr installieren?

#4 01.08.2012 09:31:52

Schlummi
Mitglied

Re: Umstieg von SysVinit auf systemd

Hallo stoerti,
ich bastle auch grad an dem Thema. Ich bin da wie folgt vorgegangen:

 pacman -S systemd 

installiert SystemD.
Dann die von SystemD benötigten Dateien erstellt, - hast du ja schon gemacht.
Nun kannst du testweise SystemD benutzen, indem du beim Booten an die Kernelzeile

 init=/bin/systemd 

anhängst.
Das ignoriert für den nächsten Start die Initscripte und nutzt SystemD.
Im laufenden System kannst du nun wie fs4000 schon schrieb alle von dir benötigten Dienste starten und sehen ob sie einwandfrei hochlaufen.
Bei einem fail entweder

 systemctl status <dienstname>.service 

oder

 journalctl 

eingeben, um zu sehen wo es hakt.
Für viele Standarddienste gibt es schon vorgefertigte Service-Units.

Probleme hatte ich mit meiner locale nachdem ich dann endgültig

 initscripts 

deinstalliert habe. Trotz richtiger Konfiguration sprach mein System auf einmal POSIX.
Abhilfe schafft hier das Paket

 systemd-sysvcompat 

Gruß... Schlummi

Offline

#5 01.08.2012 11:45:53

stoerti
Gast

Re: Umstieg von SysVinit auf systemd

Nochmal ne Frage zu den Diensten. Wenn ich jetzt, während ich noch mit SysVinit gebootet habe, ps -A eingebe, werden mir ja eine Menge Dienste aufgelistet. Werden diese mit systemd auch alle autmoatisch gestartet oder sind das wirklich alles Dienste, die ich nach dem Booten mit systemctl enable selbst aktivieren muss?

#6 01.08.2012 12:05:51

Hackepeter
Mitglied

Re: Umstieg von SysVinit auf systemd

Also ich hab lediglich die Deamons per systemd gestartet, die ich vorher in der rc.conf eingetragen hatte.

Du kannst übrigens auch einfach mal systemd testen und ohne Probleme wieder zurückkehren, wenn was nicht funktioniert.

s.h. auch https://wiki.archlinux.org/index.php/Systemd


P.S. Wobei ich sagen muss, dass ich dies nur auf dem Netbook gemacht habe. Auf dem Dekstop erkennen ich keinerlei Vorteil von systemd und bleibe erstmal beim alten initsystem

Grüsse

Beitrag geändert von Hackepeter (01.08.2012 12:08:13)

Offline

#7 01.08.2012 18:59:55

stoerti
Gast

Re: Umstieg von SysVinit auf systemd

So, ein erster Boot mittels systemd verlief schonmal ziemlich zügig - bis dahin erstmal begeistert. Bis auf, dass weder KDM gestartet wurde (ich glaube, dass nichtmal X gestartet wurde - bin mir aber nicht sicher) und die Netzwerk-Verbindung wurde nicht gestartet. Ich nehme mal an, dass dies die Dienste sind, die ich mit systemctl enable aktivieren muss, wa? In meiner rc.conf habe ich stehen

DAEMONS=(syslog-ng cpufreq acpid iptables network dbus @sshd @crond @ntpd @cupsd @dictd @kdm)

wogegen in der neueren rc.conf.pacnew nur noch syslog-ng, network und crond stehen. Den Rest, den ich noch stehen habe, muss ich dann via systemd starten, korrekt?

#8 01.08.2012 19:48:13

Schlummi
Mitglied

Re: Umstieg von SysVinit auf systemd

Also ich habe ja keine rc.conf mit einem Daemon-Array mehr, daher starte ich alle Dienste via systemD.
So weit ich weiß, startet systemd eine Netzwerkverbindung auf eth0 mit DHCP automatisch. Alle anderen Verbindungsarten müssen dann mit einer Service-Unit realisiert werden.
Ich habe hier z.B. eine für eine statische IP im lokalen Netzwerk, die ich natürlich per systemctl aktivieren mußte.

Standarmäßig startet systemd die default.target, welche dann ein Link auf graphical.target für Runlevel 5 ist, oder multi-user.target für Runlevel 3

Offline

#9 01.08.2012 20:59:11

swordfish
Mitglied

Re: Umstieg von SysVinit auf systemd

stoerti schrieb:

[...] wogegen in der neueren rc.conf.pacnew nur noch syslog-ng, network und crond stehen. Den Rest, den ich noch stehen habe, muss ich dann via systemd starten, korrekt?

Die kurze Antwort lautet: Ja big_smile

Die lange Antwort hängt davon ab, "wie" du systemd installiert hast - als standalone oder neben sysvinit. In letzterem Fall (und unter Hinzuziehung des Pakets 'initscripts-systemd' könntest Du auch noch die alte rc.conf benutzen.

Aktuell gibt es offenbar aufgrund der "Übergangsphase" hin zu systemd auch die Möglichkeit, ein Mischsystem zu fahren (was ich persönlich aber eher verwirrend finde - anyway).

Offline

#10 01.08.2012 21:02:27

stoerti
Gast

Re: Umstieg von SysVinit auf systemd

Also, ich habe inzwischen mittels systemctl enable hinbekommen, dass beim Start syslog-ng, iptables, sshd, ntpd und kdm gestartet wird - ich kann also wieder ein GUI nutzen. Den Rest der Dienste, die ich noch in der DAEMON-Liste stehen habe, bekomme ich aber nicht zum Laufen. Allen voran network, cupsd und dictd. Ich habe also momentan kein Netzwerkzugriff. Interessanter Weise läuft, obwohl ich es nicht explizit geladen oder aktiviert habe, cpufreq und dbus einwandfrei.

#11 01.08.2012 21:05:11

stoerti
Gast

Re: Umstieg von SysVinit auf systemd

@ swordfish
Im Moment habe ich sowohl systemd als auch SysVinit installiert, da ich erstmal alles zu Ende konfigurieren will. Letztlich habe ich aber vor SysVinit komplett zu deinstallieren, also kein Mischbetrieb. Will also von der bisherigen rc.conf komplett weg.

#12 01.08.2012 21:11:41

swordfish
Mitglied

Re: Umstieg von SysVinit auf systemd

Schlummi schrieb:

Also ich habe ja keine rc.conf mit einem Daemon-Array mehr, daher starte ich alle Dienste via systemD.
So weit ich weiß, startet systemd eine Netzwerkverbindung auf eth0 mit DHCP automatisch. Alle anderen Verbindungsarten müssen dann mit einer Service-Unit realisiert werden.
Ich habe hier z.B. eine für eine statische IP im lokalen Netzwerk, die ich natürlich per systemctl aktivieren mußte.

Standarmäßig startet systemd die default.target, welche dann ein Link auf graphical.target für Runlevel 5 ist, oder multi-user.target für Runlevel 3

Welche service-units laufen, zeigt Dir:

$ systemctl -t service

Und bei mir wurde kein dhcp-service automatisch gestartet (lässt sich aber mit obigem Befehl leicht rausfinden)!

Da ich unter KDE den Networkmanager nutze, hab' ich den entsprechenden service händisch gestartet:

# systemctl start NetworkManager.service

und damit der service immer beim Systemstart mitgeladen wird:

# sytstemctl enable NetworkManager.service

Wenn man keinen Networkmanager benutzt, sollte das hier funktionieren:

# systemctl start dhcpcd@.service

Voraussetzung: Das Paket 'systemd-arch-units' ist installiert (wenn nicht, sollte eth0 mit angegeben werden - 'systemctl start dhcpcd@eth0.service')

und

# systemctl enable dhcpcd@.service

Offline

#13 01.08.2012 21:38:12

swordfish
Mitglied

Re: Umstieg von SysVinit auf systemd

stoerti schrieb:

Also, ich habe inzwischen mittels systemctl enable hinbekommen, dass beim Start syslog-ng, iptables, sshd, ntpd und kdm gestartet wird - ich kann also wieder ein GUI nutzen.

syslog-ng ist überflüssig (s.: https://wiki.archlinux.org/index.php/Sy … md_Journal)

stoerti schrieb:

Den Rest der Dienste, die ich noch in der DAEMON-Liste stehen habe, bekomme ich aber nicht zum Laufen. Allen voran network, cupsd und dictd. Ich habe also momentan kein Netzwerkzugriff. Interessanter Weise läuft, obwohl ich es nicht explizit geladen oder aktiviert habe, cpufreq und dbus einwandfrei.

Schau bitte mal mit

$ systemctl -t service

welche services aktuell laufen. Außerdem kannste auch gleich nachsehen, ob irgendwas verreckt ist:

$ systemctl --failed

Falls ja, mal mit

$ systemctl status XXX.service

checken.

In Sachen Network könntest Du mal schauen, was:

$ systemctl -t target

Dir zeigt. Ich hab' da beispielsweise das hier stehen:

network.target      loaded active active     Network

Wenn das bei Dir auch steht, dann schau mal, was ich oben (22.11 Uhr als Antwort auf 'Schlummi') geschrieben habe.

cupsd wird über:

# systemctl enable cups.service

aktiviert.

$ systemctl status cups.service
cups.service - CUPS Printing Service
          Loaded: loaded (/usr/lib/systemd/system/cups.service; enabled)
          Active: active (running) since Wed, 01 Aug 2012 21:18:25 +0200; 1h 17min ago
        Main PID: 741 (cupsd)
          CGroup: name=systemd:/system/cups.service
                  └ 741 /usr/sbin/cupsd -f

Offline

#14 01.08.2012 21:38:32

Schlummi
Mitglied

Re: Umstieg von SysVinit auf systemd

@swordish:

Und bei mir wurde kein dhcp-service automatisch gestartet (lässt sich aber mit obigem Befehl leicht rausfinden)!

Da hast du recht. Ist mir nicht direkt aufgefallen, da ich zusätzlich mit initscripts, also rc.conf, gebootet hatte. Da wurde das Netzwerk ja noch automatisch gestartet. Danach hatte ich meinen eigenen network.service konfiguriert.

Offline

#15 01.08.2012 22:17:39

stoerti
Gast

Re: Umstieg von SysVinit auf systemd

@ swordfish
Dann disable ich syslog-ng halt wieder. smile

systemctl -t service zeigt console-kit-daemon, cosole-kit-log-system-start, dbus, getty@tty1, kdm, ntpd, sshd, systemd-journald, systemd-logind, systemd-modules-load, systemd-remount-fs, systemd-sysctl, systemd-tmpfiles-setup, systemd-udev-trigger, systemd-udevd, systemd-user-sessions, systemd-vconsole-setup und upower an.

systemctl --failed zeigt keine units an.

systemctl -t target zeigt basic, cryptsetup, getty, graphical, local-fs-pre, local-fs, multi-user, printer, remote-fs, sockets, sound, swap und sysinit an.
Also leider nichts mit Network.

CUPS habe ich inzwischen auch enabled bekommen. smile

#16 01.08.2012 22:28:59

fs4000
Mitglied

Re: Umstieg von SysVinit auf systemd

Für CUPS kann man auch den cups.socket nehmen für Socket-Activation. Nur startet Gnome den momentan trotzdem dauerhaft.

Offline

#17 01.08.2012 22:45:30

stoerti
Gast

Re: Umstieg von SysVinit auf systemd

So, habe DHCP zum laufen bekommen. Hatte vergessen das Paket systemd-arch-units zu installieren.
Bleibt nur noch die Frage wie ich dictd zum Laufen kriege.
Abgesehen davon denke ich, dass ich, rein theoretisch, wagen könnte, SysVinit runterzuschmeißen. Oder sieht noch jemand etwas, was ich übersehen habe?

#18 01.08.2012 22:56:13

stoerti
Gast

Re: Umstieg von SysVinit auf systemd

Müsste ich evtl vor der endgültigen Entfernung von SysVinit das Paket netcfg installieren und einrichten? Oder startet systemd trotzdem den network-Daemon?

#19 02.08.2012 10:21:38

swordfish
Mitglied

Re: Umstieg von SysVinit auf systemd

stoerti schrieb:

Müsste ich evtl vor der endgültigen Entfernung von SysVinit das Paket netcfg installieren und einrichten? Oder startet systemd trotzdem den network-Daemon?

'netcfg' brauchste wohl nur, wenn Du Dir 'ne statische Netzwerkverbindung einrichtest (also kein dhcp) oder wenn Du noch 'ne Wireless-Nic mitkonfigurieren möchtest. Alternativ kannste natürlich den Networkmanager nutzen. Kommt aber natürlich darauf an, welche Desktop-Umgebung Du nutzt bzw. welchen Windowmanager und was Dir lieber ist smile .

Siehe auch: https://wiki.archlinux.org/index.php/Systemd#Network (Abschnitt: "Other configurations")

Offline

#20 02.08.2012 10:33:04

stoerti
Gast

Re: Umstieg von SysVinit auf systemd

@ swordfish
Ja, hab ich gestern auch noch rausgekriegt.
Ich hab jetzt nur noch zwei Sachen offen, bevor ich versuchen möchte, SysVinit zu entfernen: Einmal bekomme ich dictd noch nicht automatisch gestartet. Und die zweite Sache ist acpid: Im englischen Wiki steht, dass man dies durch systemd ersetzen kann. Ist dies für'n Desktop-PC überhaupt notwendig?
Anonsten läuft der Rest inzwischen über systemd:iptables, sshd, crond als cronie, ntpd, cupsd und kdm.
cpufreq und dbus brauchte ich nicht aktivieren, die liefen interessanter weise ohne Eingreifen.
Das hieße ja auch, dass ich die rc.conf letztlich auch komplett weglassen könnte, oder?

#21 02.08.2012 10:33:19

swordfish
Mitglied

Re: Umstieg von SysVinit auf systemd

stoerti schrieb:

Bleibt nur noch die Frage wie ich dictd zum Laufen kriege.

# sudo systemctl enable dictd.service

geht nicht?

Was sagt:

$ systemctl status dictd.service

Evtl. musst Du das service-unit selber anlegen - siehe: http://www.mail-archive.com/arch-genera … 28861.html

Offline

#22 02.08.2012 10:44:01

swordfish
Mitglied

Re: Umstieg von SysVinit auf systemd

stoerti schrieb:

die zweite Sache ist acpid: Im englischen Wiki steht, dass man dies durch systemd ersetzen kann. Ist dies für'n Desktop-PC überhaupt notwendig?

Wenn Du bisher schon keine acpid-events benutzt hast, kannste das ignorieren. Ich hab's selber noch nicht wirklich ausprobiert - und ich hab' hier ein Laptop stehen (das ich aber eher als Desktop-Ersatz benutze).

stoerti schrieb:

Anonsten läuft der Rest inzwischen über systemd:iptables, sshd, crond als cronie, ntpd, cupsd und kdm.
cpufreq und dbus brauchte ich nicht aktivieren, die liefen interessanter weise ohne Eingreifen.

Ja, einige services startet systemd offenbar von sich aus smile . Hab' ich aber auch erst gemerkt, als ich einige services starten wollte und dann gesehen habe, dass sie längst liefen. Meine, dazu auch was in der man-page zu systemd gelesen zu haben.

stoerti schrieb:

Das hieße ja auch, dass ich die rc.conf letztlich auch komplett weglassen könnte, oder?

Die wird eh automatisch gelöscht, wenn Du neben systemd auch systemd-sysvcompat installierst (so war's wenigstens bei mir). Im Zweifelsfall checken und löschen (so wie auch die initscripts, die aber auch eigentlich automatisch gelöscht werden).

Offline

#23 02.08.2012 10:53:58

stoerti
Gast

Re: Umstieg von SysVinit auf systemd

Wofür genau ist das Paket systemd-sysvcompat eigentlich wichtig/zuständig, außer für, wie Schlummi schrieb, die richtigen Spracheinstellungen?

#24 02.08.2012 18:16:40

zico
Mitglied

Re: Umstieg von SysVinit auf systemd

Hey,
Kurze Frage:

Da ichs mir im Moment noch nicht leisten kann, dass ich beim Umstieg tage lang mein System flach lege, konnte ich bisher nur lesen und lesen. Und wenn ich richtig lese, muss ich mir ja alle Service-Untis selbst anlegen.

Weiss denn Jemand, ob diese irgendwann mit den entsprechenden Paketen selbst mitgeliefert werden (Also samba bringt ja nen Startskropt mit - jedoch noch nichts für systemd), wenn der entgültige Umstieg auf systemd erfolgt?
Oder ist das nicht KISS genug?

Offline

#25 02.08.2012 18:32:50

fs4000
Mitglied

Re: Umstieg von SysVinit auf systemd

Ne, nix selber anlegen, das wird bald in jedem Paket enthalten sein und es sollte auch nur noch eine Frage der Zeit sein, bis die Upstream-Projekte selbst die Units liefern. Momentan hilft noch das Paket systemd-arch-units aus.

Offline

Schnellantwort auf dieses Thema

Schreibe deinen Beitrag und versende ihn
Deine Antwort

Fußzeile des Forums