在Linux系统中,设置应用程序或服务在系统启动时自动运行是一项非常实用的功能,这不仅能够提高工作效率,还能确保关键服务在每次系统启动时都能正常运行,以下是如何在Linux系统中设置自启动的详细步骤和经验分享。

使用Systemd设置自启动
Systemd是现代Linux发行版中常用的系统和服务管理器,以下是如何使用Systemd设置自启动的步骤:
1 创建服务文件
你需要创建一个服务文件,这个文件通常位于/etc/systemd/system/目录下,如果你想设置一个名为myapp.service的服务,可以按照以下步骤操作:
-
打开终端。
-
使用文本编辑器创建一个新的服务文件,例如使用
nano编辑器:sudo nano /etc/systemd/system/myapp.service
-
在打开的文件中,添加以下内容:
[Unit] Description=My Application Service After=network.target [Service] ExecStart=/path/to/myapp WorkingDirectory=/path/to/workdir Restart=always [Install] WantedBy=multi-user.target
Description:服务的描述。After=network.target:指定服务在哪些服务之后启动。ExecStart=/path/to/myapp:指定启动服务的命令。WorkingDirectory=/path/to/workdir:指定工作目录。Restart=always:指定服务失败时自动重启。WantedBy=multi-user.target:指定服务属于哪个目标单元。
-
保存并关闭文件。
2 启用服务
创建服务文件后,你需要启用服务,使其在启动时自动运行:
sudo systemctl enable myapp.service
3 启动服务
你可以立即启动服务以测试它:
sudo systemctl start myapp.service
4 检查服务状态
要检查服务状态,可以使用以下命令:

sudo systemctl status myapp.service
使用传统init.d方式设置自启动
对于一些较旧的Linux发行版,可能仍然使用传统的init.d方式来设置自启动,以下是使用init.d设置自启动的步骤:
1 创建启动脚本
-
打开终端。
-
使用文本编辑器创建一个新的启动脚本,例如使用
nano编辑器:sudo nano /etc/init.d/myapp
-
在打开的文件中,添加以下内容:
#!/bin/sh # myapp - start and stop my application # Copyright (C) 2026 Your Name # Description: Start and stop my application # Author: Your Name case "$1" in start) /path/to/myapp ;; stop) killall myapp ;; restart) $0 stop $0 start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 ;; esac exit 0 -
保存并关闭文件。
-
使脚本可执行:
sudo chmod +x /etc/init.d/myapp
2 设置自启动
-
编辑
/etc/rc.local文件,在文件末尾添加以下行:/etc/init.d/myapp start
-
保存并关闭文件。
3 重启系统
重启系统以应用更改。

经验案例
假设你有一个名为mybackup的备份脚本,你希望每次系统启动时自动运行它,你可以按照以下步骤操作:
- 创建备份脚本
/usr/local/bin/mybackup。 - 设置脚本权限:
sudo chmod +x /usr/local/bin/mybackup
- 创建服务文件
/etc/systemd/system/mybackup.service。 - 启用并启动服务。
FAQs
Q1:如何查看所有已设置的自启动服务?
A1:可以使用以下命令查看所有已设置的自启动服务:
sudo systemctl list-unit-files --type=service
Q2:如何禁用自启动服务?
A2:要禁用自启动服务,可以使用以下命令:
sudo systemctl disable myapp.service
文献权威来源
《Linux系统管理实战指南》 《Linux系统服务与配置》 《Linux命令行与Shell脚本编程大全》