
我有一個腳本要在 Linux 啟動時運行,我知道 Windows 有一個啟動資料夾,Linux 也有一個。我做了一些研究,發現了各種文件,其中有許多相互矛盾的答案。路徑:
/etc/systemd/system
好像是用過的。另一種是:
/etc/rc.local
我還看到了:
/etc/init.d
我只想要一個相當於所有或至少大多數 Linux 發行版上存在的 Windows 啟動資料夾的 Linux 路徑。我還希望能夠將腳本放入該目錄中以使其在啟動時運行。什麼路徑可以滿足這些要求。
答案1
大多數形式的自動啟動取決於您的安裝:您使用的 init 系統(sysv、systemd、upstart)、您的桌面環境(GNOME/KDE 與非 XDG 的)等。
Cron 存在於大多數 Linux 系統上,可用於自動啟動。新增一行到你的/etc/crontab
:
@reboot /usr/bin/blah
/usr/bin/blah
您要運行的命令在哪裡。
如果您希望程式在登入時啟動,並且您使用的是 XDG 相容的桌面環境(例如 GNOME 或 KDE),請將文件.desktop
放入~/.config/autostart
.有關文件的範例.desktop
,請參閱拱門維基。
或者,如果您的 Linux 發行版使用 systemd,您可以編寫單元檔案。例如:
[Unit]
Description=autostart something
[Service]
Type=oneshot
ExecStart=/usr/bin/blah
[Install]
WantedBy=multi-user.target
將以上文字放入/etc/systemd/system/blah.service
並systemctl daemon-reload
以 root 身分執行以註冊服務。接下來,運行systemctl enable blah.service
以啟用新服務的自動啟動。
有關如何編寫 systemd 單元文件的詳細信息,請參見這個連結。