
Wie gehe ich vor, um beim Start in ArchLinux einen Befehl Systemd
wie rc.local
in auszuführen Sysv
?
Antwort1
Hängt vom Befehl ab. In den meisten Fällennichtbrauche einen Befehl.
Wenn Sie ein Sysctl (eine Datei in ) anpassen möchten
/proc/sys
, können Sie diese in/etc/sysctl.d/*.conf
(allgemein99-sysctl.conf
oder99-local.conf
;Handbuchseite):kernel.sysrq = 1 kernel.pid_max = 4194304
Wenn es sich um einen Modulparameter unter handelt
/sys/modules
, sollte er beim ersten Laden des Moduls festgelegt werden, in/etc/modprobe.d/*.conf
(allgemeinmodprobe.conf
, siehe Manualpage):options kafs rootcell=stacken.kth.se
Wenn Sie einen Geräteparameter in schreiben möchten
/sys
oder ein Programm ausführen möchten, um die Einstellungen des Geräts zu ändern, schreiben Sie eineudevRegel, die dies tun würde, wenn das Gerät angeschlossen ist und es in/etc/udev/rules.d/*.rules
. Die Handbuchseite lautetudev(7)
und wird Ihnenudevadm info
bei der Suche nach dem richtigen Gerät hilfreich sein.ACTION=="add", SUBSYSTEM=="net", KERNEL=="eth*", \ RUN+="/usr/bin/ethtool -s %k wol d" # This rule checks if a device has an attribute in its /sys subdir: ACTION=="add", \ SUBSYSTEM=="scsi_host", \ TEST=="link_power_management_policy", \ ATTR{link_power_management_policy}="medium_power"
Wenn Sie in eine Datei an einer anderen Stelle schreiben oder eine Datei bzw. ein Verzeichnis erstellen möchten, verwenden Sie
/etc/tmpfiles.d
(Handbuchseite).Wenn Sie wollenBelastungein Modul, legen Sie seinen Namen in einer Datei in
/etc/modules-load.d/*.conf
(Handbuchseite).Wenn Sie schließlich einen allgemeinen Befehl ausführen oder einen Daemon starten möchten, schreiben Sie eine
.service
Unit-Datei (eine von vielen Manualpages). Legen Sie es in/etc/systemd/system/*.service
, und verwenden Sie die vielen Beispiele in/lib/systemd/system
. Die Verwaltung erfolgt übersystemctl
.Ein paar Dinge, die zu beachten sind: die
Type=
Der Parameter muss richtig gesetzt werden (simple
im Vergleichforking
zu vsoneshot
), und derExecStart=
Parameter erfordert eine einfache Befehlszeile und akzeptiert keine Shell-ähnliche Syntax (kein>
, kein&&
, kein$(...)
usw., nur einfaches$ENVVAR
und%x
.)Es ist möglich, Dienste zu bestellen, nachdem ein bestimmtes Gerät angezeigt wird, beispielsweise mit ( ).
After=name.device
After=sys-subsystem-net-devices-%i.device
Beide#archlinuxUnd#systemdhaben ihre IRC-Kanäle auf demfreenodeNetzwerk.