This commit is contained in:
qiaofeng1227 2023-11-09 14:49:41 +08:00
parent 53c24c5b2f
commit 79de33d60f

View file

@ -5,6 +5,20 @@ cockpit_port="9000"
container_name="websoft9-apphub"
volume_name="websoft9_apphub_config"
check_ports() {
local ports=("$@")
for port in "${ports[@]}"; do
echo "Check port: $port"
if ss -tuln | grep ":$port " >/dev/null && ! systemctl status cockpit.socket | grep "$port" >/dev/null; then
echo "Port $port is in use, can not set this port to config.ini"
return 0
fi
done
echo "All ports are available"
return 1
}
# get volume from container
function get_volume_path() {
local container_name="$1"
@ -24,11 +38,16 @@ on_change() {
cockpit_port=$(docker exec -i websoft9-apphub apphub getconfig --section cockpit --key port)
listen_stream=$(grep -Po 'ListenStream=\K[0-9]*' /lib/systemd/system/cockpit.socket)
if [ "$cockpit_port" != "$listen_stream" ]; then
sed -i "s/ListenStream=${listen_stream}/ListenStream=${cockpit_port}/" /lib/systemd/system/cockpit.socket
systemctl daemon-reload
systemctl restart cockpit.socket 2> /dev/null
systemctl restart cockpit || exit 1
set_Firewalld
check_ports "$cockpit_port"
if [ $? -eq 0 ]; then
sudo docker exec -i websoft9-apphub apphub setconfig --section cockpit --key port --value "$listen_stream"
else
sudo sed -i "s/ListenStream=${listen_stream}/ListenStream=${cockpit_port}/" "$cockpit_service_path"
systemctl daemon-reload
systemctl restart cockpit.socket 2> /dev/null
systemctl restart cockpit || exit 1
set_Firewalld
fi
fi
set -e
}