ubuntu终端,可执行程序做成服务

123 阅读2分钟

起因,,前端打包成可执行程序,再做成一个服务自启动; 在Ubuntu系统中,可以将可执行程序配置为一个系统服务,以便在系统启动时自动运行或手动管理。以下是具体步骤:

1. 创建可执行程序脚本

假设可执行程序是一个名为my_program的脚本,并且它位于/home/user/my_program目录下。确保这个脚本具有可执行权限:

chmod +x /home/user/my_program

2. 创建systemd服务单元文件

在Ubuntu 16.04及以后的版本中,推荐使用systemd来管理服务。需要在/etc/systemd/system/目录下创建一个新的服务单元文件。例如,创建一个名为my_program.service的文件:

sudo nano /etc/systemd/system/my_program.service

在这个文件中,添加以下内容(根据实际路径和需求修改):

[Unit]
Description=My Custom Program
After=network.target

[Service]
ExecStart=/home/user/my_program
Restart=always
User=user  # 运行服务的用户,如果是root用户,可以省略这行
Group=user # 运行服务的用户组,如果是root用户,可以省略这行
WorkingDirectory=/home/user  # 可执行程序的工作目录

[Install]
WantedBy=multi-user.target

3. 重新加载systemd并启用服务

保存并关闭编辑器后,需要重新加载systemd配置,并启用这个服务:

sudo systemctl daemon-reload
sudo systemctl enable my_program.service

4. 启动并检查服务状态

可以手动启动这个服务,并检查它的状态:

sudo systemctl start my_program.service
sudo systemctl status my_program.service

如果一切正常,应该会看到服务正在运行的信息。

5. 配置自动启动(可选)

由于已经使用systemctl enable命令启用了服务,它将在系统启动时自动运行。如果希望禁用自动启动,可以使用以下命令:

sudo systemctl disable my_program.service

6. 调试和日志

如果服务没有按预期运行,可以查看服务的日志来获取更多信息:

journalctl -u my_program.service -f

这将显示服务的实时日志输出,帮助诊断问题。

通过这些步骤,你可以将你的可执行程序配置为一个系统服务,并在需要时进行管理。