58 lines
1.3 KiB
Bash
Executable File
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."
|