暂无内容

ubuntu 设置开机自启动

创建.service 文件

/etc/systemd/system/ 目录下新建一个 .service 文件。例如,为一个名为 custom 的服务,创建服务文件

bash
sudo touch /etc/systemd/system/custom.service

编写 service 文件内容

桌面模式下,可以使用 gedit 编辑服务文件。

bash
sudo gedit /etc/systemd/system/custom.service

使用 nano 编辑服务文件。

bash
sudo nano /etc/systemd/system/custom.service

自行选择合适的方式

在服务文件中,定义服务的基本信息和启动参数。以下是一个示例文件:

ini
[Unit]
Description=Custom Service #服务描述。
After=network.target #定义服务依赖关系,network.target 表示在网络启动后再启动该服务。

[Service]
ExecStart=/path/to/your/executable --option #指定服务启动的命令和参数,可以是可执行文件,脚本或者其他命令。
WorkingDirectory=/path/to/working/directory #指定服务运行时的工作目录。
User=username #指定服务的用户。
Restart=on-failure #设置服务异常时重启。
Environment="ENV_VAR_NAME=value" #设置环境变量


[Install]
WantedBy=multi-user.target #定义服务的目标,通常 multi-user.target 表示在系统多用户模式下启动。

TIP

在 [Service] 部分,可以设置 StandardOutput 和 StandardError 选项,将日志输出重定向到指定的目标 可选值说明:

  • journal: 将日志输出到 systemd 日志(即 journalctl),可以使用 journalctl -u <service_name> 查看。
  • null: 忽略日志输出。
  • tty: 将日志输出到 TTY(终端),如果正在使用终端调试时有用。
  • file:/path/to/logfile: 将日志输出到指定文件。

示例值:

ini
[Service]
StandardOutput=journal
StandardError=file:/var/log/my_service_error.log

重新加载 systemd

每次修改 .service 文件后,都需要重新加载 systemd 配置:

bash
sudo systemctl daemon-reload

启动并启用服务

启动服务并设置为开机自启:

bash
sudo systemctl start custom.service
sudo systemctl enable custom.service

检查服务状态

可以检查服务的运行状态,确保服务已正常启动:

bash
sudo systemctl status custom.service

停止和禁用服务

bash
sudo systemctl stop custom.service
sudo systemctl disable custom.service
评论