
Ich habe ein Skript, das ich beim Start von Linux ausführen möchte. Ich weiß, dass Windows einen Startordner hat und dass Linux auch einen hat. Ich habe einige Nachforschungen angestellt und verschiedene Dateien mit vielen widersprüchlichen Antworten gefunden. Der Pfad:
/etc/systemd/system
scheint verwendet zu werden. Ein anderes ist:
/etc/rc.local
und ich habe auch gesehen:
/etc/init.d
Ich möchte lediglich den Pfad für ein Linux-Äquivalent eines Windows-Startordners, der auf allen oder zumindest den meisten Linux-Distributionen vorhanden ist. Außerdem möchte ich in diesem Verzeichnis ein Skript ablegen können, damit es beim Start ausgeführt wird. Welcher Pfad kann diese Anforderungen erfüllen?
Antwort1
Die meisten Formen des Autostarts hängen von Ihrer Installation ab: dem von Ihnen verwendeten Init-System (sysv vs. systemd vs. upstart), Ihrer Desktop-Umgebung (GNOME/KDE vs. nicht-XDG-Umgebungen) usw.
Cron ist auf den meisten Linux-Systemen vorhanden und kann für den Autostart verwendet werden. Fügen Sie eine Zeile zu Ihrem hinzu /etc/crontab
:
@reboot /usr/bin/blah
wo /usr/bin/blah
ist der Befehl, den Sie ausführen möchten.
Wenn Sie möchten, dass das Programm bei jeder Anmeldung gestartet wird und Sie eine XDG-kompatible Desktop-Umgebung (z. B. GNOME oder KDE) verwenden, legen Sie eine .desktop
Datei in ab ~/.config/autostart
. Ein Beispiel für eine .desktop
solche Datei finden Sie imArch-Wiki.
Alternativ können Sie, wenn Ihre Linux-Distribution systemd verwendet, eine Unit-Datei schreiben. Beispiel:
[Unit]
Description=autostart something
[Service]
Type=oneshot
ExecStart=/usr/bin/blah
[Install]
WantedBy=multi-user.target
Geben Sie den obigen Text ein /etc/systemd/system/blah.service
und führen Sie ihn systemctl daemon-reload
als Root aus, um den Dienst zu registrieren. Führen Sie ihn anschließend aus, systemctl enable blah.service
um den Autostart Ihres neuen Dienstes zu aktivieren.
Einzelheiten zum Schreiben einer systemd-Unit-Datei finden Sie unterdieser Link.