问题原因: - cmd.Start() 启动的子进程与父进程在同一会话中 - 当 systemctl restart 发送 SIGTERM 给父进程时 - 子进程可能也会被终止,导致重启命令无法完成 修复内容: - 使用 setsid 创建新会话,子进程完全独立于父进程 - 分离标准输入/输出/错误流 - 确保即使父进程被 kill,重启命令仍能执行完成
问题原因: - cmd.Start() 启动的子进程与父进程在同一会话中 - 当 systemctl restart 发送 SIGTERM 给父进程时 - 子进程可能也会被终止,导致重启命令无法完成 修复内容: - 使用 setsid 创建新会话,子进程完全独立于父进程 - 分离标准输入/输出/错误流 - 确保即使父进程被 kill,重启命令仍能执行完成