Files
yq_2026_duo/src/rm_upstart/register_service.sh
cyy_mac 5e1e355ffa bf
2026-03-25 12:37:08 +08:00

58 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
# 获取当前用户的用户名和家目录
USER_NAME=${SUDO_USER:-$(whoami)}
HOME_DIR=$(eval echo ~$USER_NAME)
SERVICE_NAME="rm_1229.service"
SERVICE_PATH="/etc/systemd/system/$SERVICE_NAME"
# 检查是否为 root 用户,因为修改 systemd 配置需要 root 权限
if [ "$(id -u)" -ne 0 ]; then
echo "This script must be run as root."
exit 1
fi
# 复制脚本到目标路径
chmod +x ./rm_clean_up.sh
chmod +x ./rm_watch_dog.sh
cp ./rm_clean_up.sh /usr/sbin/
cp ./rm_watch_dog.sh /usr/sbin/
# 动态创建 systemd service 文件内容
read -r -d '' SERVICE_CONTENT << EOF
[Unit]
Description=YQ 2026 Vision Project
After=network.target
[Service]
User=$USER_NAME
Type=simple
Environment=ROS_DOMAIN_ID=10
ExecStart=/usr/sbin/rm_watch_dog.sh
ExecStop=/usr/sbin/rm_clean_up.sh
Restart=always
TimeoutStopSec=10
RestartSec=10s
[Install]
WantedBy=multi-user.target
EOF
# 创建/覆写 systemd service 文件
echo "Creating systemd service file at $SERVICE_PATH..."
echo "$SERVICE_CONTENT" > "$SERVICE_PATH"
# 重新加载 systemd 配置
echo "Reloading systemd daemon..."
systemctl daemon-reload
# 启用服务
echo "Enabling service $SERVICE_NAME..."
systemctl enable "$SERVICE_NAME"
# 启动服务
echo "Starting service $SERVICE_NAME..."
systemctl start "$SERVICE_NAME"
echo "Service $SERVICE_NAME has been registered and started."