【环境配置】ubuntu下的保持程序一直运行
useApplication 重启程序(保持一直运行状态)
目标
确保 useApplication
在意外停止后能够自动重启,提高服务的可用性和稳定性。
环境
- 操作系统:Ubuntu 22.04 (jetson)
- 应用程序:
useApplication
- 安装路径:
/home/nvidia/install/APP
步骤
1. 创建 systemd
服务文件
-
打开终端。
-
创建服务文件:
sudo gedit /etc/systemd/system/useapp.service
-
编辑服务文件,输入以下内容:
[Unit] Description=UserAPP Service After=network.target [Service] User=nvidia WorkingDirectory=/home/nvidia/install/APP Environment=LD_LIBRARY_PATH=/home/nvidia/install/APP:$LD_LIBRARY_PATH ExecStart=/home/nvidia/install/APP/useApplication Restart=always # 设置服务在任何情况下都重新启动 RestartSec=5s [Install] WantedBy=multi-user.target
解释:
[Unit]
:服务的基本信息。Description
:服务的描述。After
:确保服务在网络服务启动之后再启动。
[Service]
:服务的具体配置。User
:运行服务的用户。WorkingDirectory
:服务的工作目录。Environment
:设置环境变量LD_LIBRARY_PATH
。ExecStart
:启动服务的命令。Restart
:设置服务在任何情况下都重新启动。RestartSec
:服务重启前的等待时间(秒)。
[Install]
:安装配置。WantedBy
:服务在多用户模式下启动。
-
保存并关闭编辑器(按
Ctrl+X
,然后按Y
,最后按Enter
)。
2. 重新加载 systemd
配置
- 重新加载
systemd
配置:sudo systemctl daemon-reload
3. 启用并启动服务
-
启用服务(确保服务在系统启动时自动启动):
sudo systemctl enable useapp.service
-
启动服务:
sudo systemctl start useapp.service
4. 检查服务状态
-
检查服务状态:
sudo systemctl status useapp.service
预期输出:
- 服务应显示为
active (running)
。 - 如果服务未启动,查看错误信息并进行相应调整。
- 服务应显示为
5. 查看日志
-
查看
systemd
日志,以了解服务启动和重启的详细信息:sudo journalctl -u useapp.service --since "10 minutes ago"
解释:
--since "10 minutes ago"
:只显示最近10分钟的日志。- 查看日志中的错误信息,以确定服务启动失败的原因。
6. 手动测试
-
手动终止
useApplication
进程:sudo kill $(pgrep useApplication)
-
等待几秒钟,然后检查进程是否重新启动:
ps -aux | grep useApplication
预期输出:
- 应能看到
useApplication
进程重新启动。
- 应能看到