fix: blitz-run-context.service 失败
This commit is contained in:
@@ -7,6 +7,14 @@ source "${SCRIPT_DIR}/common.sh"
|
|||||||
|
|
||||||
STEP="run-context"
|
STEP="run-context"
|
||||||
|
|
||||||
|
on_error() {
|
||||||
|
local rc="$?"
|
||||||
|
blitz_log "${STEP}" "error" "failure" "line=${1:-unknown} cmd=${BASH_COMMAND:-unknown}" "${rc}"
|
||||||
|
exit "${rc}"
|
||||||
|
}
|
||||||
|
|
||||||
|
trap 'on_error "${LINENO}"' ERR
|
||||||
|
|
||||||
blitz_load_boot_env
|
blitz_load_boot_env
|
||||||
blitz_require_root "${STEP}"
|
blitz_require_root "${STEP}"
|
||||||
blitz_require_command python3 "${STEP}"
|
blitz_require_command python3 "${STEP}"
|
||||||
|
|||||||
@@ -50,6 +50,10 @@ blitz_load_boot_env() {
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
if declare -F normalize_loaded_env_vars >/dev/null 2>&1; then
|
||||||
|
normalize_loaded_env_vars
|
||||||
|
fi
|
||||||
|
|
||||||
default_time_server="$(blitz_host_from_addr "${ROBOT_SIDE_OMNISOCKET_SERVER_ADDR:-}" || true)"
|
default_time_server="$(blitz_host_from_addr "${ROBOT_SIDE_OMNISOCKET_SERVER_ADDR:-}" || true)"
|
||||||
|
|
||||||
export BLITZ_BOOT_DELAY_SEC="${BLITZ_BOOT_DELAY_SEC:-30}"
|
export BLITZ_BOOT_DELAY_SEC="${BLITZ_BOOT_DELAY_SEC:-30}"
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
Description=Blitz robot 5G link logger
|
Description=Blitz robot 5G link logger
|
||||||
PartOf=blitz-robot.target
|
PartOf=blitz-robot.target
|
||||||
After=blitz-run-context.service blitz-5g-dial.service
|
After=blitz-run-context.service blitz-5g-dial.service
|
||||||
|
Requires=blitz-run-context.service
|
||||||
Wants=blitz-run-context.service blitz-5g-dial.service
|
Wants=blitz-run-context.service blitz-5g-dial.service
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
Description=Blitz robot b-side omnid
|
Description=Blitz robot b-side omnid
|
||||||
PartOf=blitz-robot.target
|
PartOf=blitz-robot.target
|
||||||
After=blitz-run-context.service blitz-5g-dial.service blitz-ros-receiver.service
|
After=blitz-run-context.service blitz-5g-dial.service blitz-ros-receiver.service
|
||||||
|
Requires=blitz-run-context.service
|
||||||
Wants=blitz-run-context.service blitz-5g-dial.service blitz-ros-receiver.service
|
Wants=blitz-run-context.service blitz-5g-dial.service blitz-ros-receiver.service
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
@@ -9,7 +10,7 @@ Type=simple
|
|||||||
EnvironmentFile=-/run/blitz-robot/run-context.env
|
EnvironmentFile=-/run/blitz-robot/run-context.env
|
||||||
ExecStartPre=/bin/bash @OMNISOCKETGO_ROOT@/scripts/boot/prepare-runtime-dir.sh
|
ExecStartPre=/bin/bash @OMNISOCKETGO_ROOT@/scripts/boot/prepare-runtime-dir.sh
|
||||||
ExecStart=/bin/bash @OMNISOCKETGO_ROOT@/scripts/boot/start-b-side-omnid-service.sh
|
ExecStart=/bin/bash @OMNISOCKETGO_ROOT@/scripts/boot/start-b-side-omnid-service.sh
|
||||||
ExecStopPost=/bin/bash -lc 'if [[ "${SERVICE_RESULT:-success}" != "success" ]]; then exec "@OMNISOCKETGO_ROOT@/scripts/boot/blitz-incident-capture-launch.sh" --source exec-stop-post --unit "%n" --result "${SERVICE_RESULT:-}" --exit-status "${EXIT_STATUS:-}" --reason b-side-service-exit; fi'
|
ExecStopPost=/bin/bash -lc 'if [[ "${SERVICE_RESULT:-success}" != "success" ]]; then exec /bin/bash "@OMNISOCKETGO_ROOT@/scripts/boot/blitz-incident-capture-launch.sh" --source exec-stop-post --unit "%n" --result "${SERVICE_RESULT:-}" --exit-status "${EXIT_STATUS:-}" --reason b-side-service-exit; fi'
|
||||||
Restart=always
|
Restart=always
|
||||||
RestartSec=2
|
RestartSec=2
|
||||||
StandardOutput=append:@BLITZ_LOG_FILE@
|
StandardOutput=append:@BLITZ_LOG_FILE@
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
Description=Blitz robot ROS receiver
|
Description=Blitz robot ROS receiver
|
||||||
PartOf=blitz-robot.target
|
PartOf=blitz-robot.target
|
||||||
After=blitz-run-context.service blitz-5g-dial.service
|
After=blitz-run-context.service blitz-5g-dial.service
|
||||||
|
Requires=blitz-run-context.service
|
||||||
Wants=blitz-run-context.service blitz-5g-dial.service
|
Wants=blitz-run-context.service blitz-5g-dial.service
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
@@ -12,7 +13,7 @@ EnvironmentFile=-/run/blitz-robot/run-context.env
|
|||||||
ExecStartPre=/bin/bash @OMNISOCKETGO_ROOT@/scripts/boot/prepare-runtime-dir.sh
|
ExecStartPre=/bin/bash @OMNISOCKETGO_ROOT@/scripts/boot/prepare-runtime-dir.sh
|
||||||
ExecStart=/bin/bash @OMNISOCKETGO_ROOT@/scripts/boot/start-ros-receiver-service.sh
|
ExecStart=/bin/bash @OMNISOCKETGO_ROOT@/scripts/boot/start-ros-receiver-service.sh
|
||||||
ExecStartPost=/bin/bash @OMNISOCKETGO_ROOT@/scripts/boot/wait-for-unix-socket.sh --step ros-receiver
|
ExecStartPost=/bin/bash @OMNISOCKETGO_ROOT@/scripts/boot/wait-for-unix-socket.sh --step ros-receiver
|
||||||
ExecStopPost=/bin/bash -lc 'if [[ "${SERVICE_RESULT:-success}" != "success" ]]; then exec "@OMNISOCKETGO_ROOT@/scripts/boot/blitz-incident-capture-launch.sh" --source exec-stop-post --unit "%n" --result "${SERVICE_RESULT:-}" --exit-status "${EXIT_STATUS:-}" --reason ros-service-exit; fi'
|
ExecStopPost=/bin/bash -lc 'if [[ "${SERVICE_RESULT:-success}" != "success" ]]; then exec /bin/bash "@OMNISOCKETGO_ROOT@/scripts/boot/blitz-incident-capture-launch.sh" --source exec-stop-post --unit "%n" --result "${SERVICE_RESULT:-}" --exit-status "${EXIT_STATUS:-}" --reason ros-service-exit; fi'
|
||||||
Restart=always
|
Restart=always
|
||||||
RestartSec=2
|
RestartSec=2
|
||||||
StandardOutput=append:@BLITZ_LOG_FILE@
|
StandardOutput=append:@BLITZ_LOG_FILE@
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
Description=Blitz robot health watchdog
|
Description=Blitz robot health watchdog
|
||||||
PartOf=blitz-robot.target
|
PartOf=blitz-robot.target
|
||||||
After=blitz-run-context.service blitz-b-side-omnid.service blitz-ros-receiver.service
|
After=blitz-run-context.service blitz-b-side-omnid.service blitz-ros-receiver.service
|
||||||
|
Requires=blitz-run-context.service
|
||||||
Wants=blitz-run-context.service blitz-b-side-omnid.service blitz-ros-receiver.service
|
Wants=blitz-run-context.service blitz-b-side-omnid.service blitz-ros-receiver.service
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
|
|||||||
@@ -9,6 +9,23 @@ die() {
|
|||||||
return 1 2>/dev/null || exit 1
|
return 1 2>/dev/null || exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
normalize_loaded_env_vars() {
|
||||||
|
local var_name
|
||||||
|
local value
|
||||||
|
|
||||||
|
for var_name in $(compgen -A variable); do
|
||||||
|
case "${var_name}" in
|
||||||
|
BACKEND_*|BLITZ_*|B_SIDE_*|CONTROL_*|FRONTEND_*|OMNI_*|PYTHON3_BIN|PYTHON_VENV_PATH|ROBOT_*|ROS_DISTRO|VITE_*)
|
||||||
|
value="${!var_name}"
|
||||||
|
if [[ "${value}" == *$'\r' ]]; then
|
||||||
|
printf -v "${var_name}" '%s' "${value%$'\r'}"
|
||||||
|
export "${var_name}"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
is_omnisocketgo_root() {
|
is_omnisocketgo_root() {
|
||||||
local dir="$1"
|
local dir="$1"
|
||||||
[[ -f "${dir}/Makefile" && -f "${dir}/cmd/b_side_omnid.c" && -d "${dir}/ros-control-py" ]]
|
[[ -f "${dir}/Makefile" && -f "${dir}/cmd/b_side_omnid.c" && -d "${dir}/ros-control-py" ]]
|
||||||
@@ -68,6 +85,8 @@ for env_file in "${ENV_FILES[@]}"; do
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
normalize_loaded_env_vars
|
||||||
|
|
||||||
if [[ "${omni_camera_device_was_set}" == "1" ]]; then
|
if [[ "${omni_camera_device_was_set}" == "1" ]]; then
|
||||||
export OMNI_CAMERA_DEVICE="${preserved_omni_camera_device}"
|
export OMNI_CAMERA_DEVICE="${preserved_omni_camera_device}"
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user