50 lines
2.4 KiB
Bash
50 lines
2.4 KiB
Bash
#!/bin/sh
|
|
set -eu
|
|
if [ -d /run/systemd/system ]; then
|
|
if [ -S /run/mission-core-sensors/driver.sock ]; then
|
|
if ! /usr/bin/python3 -I -c 'import http.client,json,socket; c=http.client.HTTPConnection("driver",timeout=5); c.sock=socket.socket(socket.AF_UNIX); c.sock.settimeout(5); c.sock.connect("/run/mission-core-sensors/driver.sock"); c.request("GET","/prepare-safe"); r=c.getresponse(); assert r.status==200 and json.load(r).get("safe") is True'; then
|
|
echo "Mission Core Node: остановите захват или просмотр записи перед обновлением или удалением." >&2
|
|
exit 1
|
|
fi
|
|
fi
|
|
mc_node_device_job=$(systemctl show --property=ActiveState --value mission-core-node-realsense-prepare.service 2>/dev/null || true)
|
|
case "$mc_node_device_job" in
|
|
active|activating) echo "Mission Core Node: дождитесь завершения подготовки устройства." >&2; exit 1 ;;
|
|
esac
|
|
|
|
mc_node_environment_state=$(systemctl show --property=ActiveState --value mission-core-node-environment.service 2>/dev/null || true)
|
|
case "$mc_node_environment_state" in
|
|
active|activating)
|
|
echo "Mission Core Node: дождитесь завершения настройки окружения в приложении." >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
fi
|
|
case "$1" in
|
|
remove|deconfigure)
|
|
mc_node_ssh_snippet=/etc/ssh/sshd_config.d/60-mission-core-node.conf
|
|
if [ -e "$mc_node_ssh_snippet" ]; then
|
|
if cmp -s /usr/share/mission-core-node/60-mission-core-node.conf "$mc_node_ssh_snippet"; then
|
|
rm "$mc_node_ssh_snippet"
|
|
else
|
|
mc_node_saved_snippet=$(mktemp /etc/ssh/sshd_config.d/mission-core-node-removed.XXXXXX)
|
|
mv "$mc_node_ssh_snippet" "$mc_node_saved_snippet"
|
|
fi
|
|
fi
|
|
mc_node_environment_snippet=/etc/systemd/system/mission-core-node.service.d/60-environment.conf
|
|
if [ ! -L "$mc_node_environment_snippet" ] && cmp -s /usr/share/mission-core-node/60-environment.conf "$mc_node_environment_snippet"; then
|
|
rm "$mc_node_environment_snippet"
|
|
fi
|
|
if [ -d /run/systemd/system ]; then
|
|
if [ -x /usr/sbin/sshd ]; then
|
|
/usr/sbin/sshd -t
|
|
systemctl try-reload-or-restart ssh.service
|
|
fi
|
|
systemctl stop mission-core-realsense.service
|
|
systemctl disable mission-core-realsense.service || true
|
|
systemctl stop mission-core-node.service
|
|
systemctl disable mission-core-node.service
|
|
fi
|
|
;;
|
|
esac
|