![Linux 相当于 Windows 的启动文件夹](https://linux22.com/image/1542084/Linux%20%E7%9B%B8%E5%BD%93%E4%BA%8E%20Windows%20%E7%9A%84%E5%90%AF%E5%8A%A8%E6%96%87%E4%BB%B6%E5%A4%B9.png)
我有一个脚本,我想在 Linux 启动时运行它,我知道 Windows 有一个启动文件夹,Linux 也有一个。我做了一些研究,发现各种文件有许多相互矛盾的答案。路径:
/etc/systemd/system
似乎被使用了。另一个是:
/etc/rc.local
我还看到了:
/etc/init.d
我只想找到一个与 Windows 启动文件夹相同的 Linux 路径,该路径存在于所有或至少大多数 Linux 发行版中。我还希望能够将脚本放在该目录中,使其在启动时运行。什么路径可以满足这些要求。
答案1
大多数自动启动形式取决于您的安装:您使用的初始化系统(sysv 与 systemd 与 upstart)、您的桌面环境(GNOME/KDE 与非 XDG)等等。
Cron 存在于大多数 Linux 系统上,可用于自动启动。在您的文件中添加一行/etc/crontab
:
@reboot /usr/bin/blah
/usr/bin/blah
您要运行的命令在哪里。
如果您希望程序在您登录时启动,并且您正在使用兼容 XDG 的桌面环境(例如 GNOME 或 KDE),请将文件放入.desktop
。有关文件~/.config/autostart
的示例.desktop
,请参阅Arch 维基。
或者,如果您的 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 单元文件的详细信息,请参阅此链接。