- New centralized logfile system for Network, DNS & VPN,

- Now kill VPN suprocesses,
- Move file config in syscoinfig file,
- Misc fixes.
This commit is contained in:
2025-07-24 18:27:01 +02:00
parent 3aaaf15e45
commit 19392dfa14
5 changed files with 210 additions and 100 deletions

View File

@@ -25,19 +25,18 @@ declare -Ag VPN_JOB_TAB
declare -Ag VPN_JOB_ID_LIST
declare -Ag VPN_JOB_NAME_IDX
declare -g VPN_LOG_FILE="/var/log/network/rx3-vpn.log"
declare -g VPN_PID_FILE="/var/lib/network/rx3-vpn.pid"
declare -g VPN_STATUS_FILE="/var/lib/network/rx3-vpn.status"
declare -g VPN_STATUS_LOCK="/var/lock/network/rx3-vpn.status"
declare -g VPN_PID_FILE
declare -g VPN_STATUS_FILE
declare -g VPN_STATUS_LOCK
if [ ! -v LOG ] || [[ "${LOG}" == "" ]]
then
export LOG=":"
fi
#if [ ! -v LOG ] || [[ "${LOG}" == "" ]]
#then
# export LOG=":"
#fi
@@ -55,7 +54,7 @@ vpn_config_make()
local mng_port=$(( 2330 + ${Device/tun/}))
${LOG} "Creating config File: [${Config_File}] Device: [${Device}] Mng_Port: (${mng_port}) Target_Config: [${Target_Config}]"
log_print "VPN" "Creating config File: [${Config_File}] Device: [${Device}] Mng_Port: (${mng_port}) Target_Config: [${Target_Config}]"
${DEBUG} cp -f ${VPN_TEMPLATE_FILE} ${Config_File}
${DEBUG} sed -e "s/TARGET-CFG/${Target_Config}-client.conf/" -e "s/VPN-DEVICE/${Device}/" -e "s/MNG-PORT/${mng_port}/" -i ${Config_File}
@@ -77,7 +76,7 @@ vpn_job_tab_load()
local job_cmd
${LOG} 1>&2 "Loading Job tab..."
log_print "VPN" "Loading Job tab..."
while IFS= read -r line
do
@@ -198,7 +197,7 @@ vpn_job_tab_init()
vpn_config_make "${config_file}" "${dst_device}" "${dst_config}"
log_print "${VPN_LOG_FILE}" "${LOG}" "Loading config: Id: [${job_id}] Name: [${dst_name}] Cmd: [${VPN_JOB_TAB["${job_id},Cmd"]}]"
log_print "VPN" "Loading config: Id: [${job_id}] Name: [${dst_name}] Cmd: [${VPN_JOB_TAB["${job_id},Cmd"]}]"
job_id=$(( ${job_id} + 1))
fi
@@ -224,13 +223,13 @@ vpn_job_tab_deinit()
if [[ "${job_PId}" -gt 0 ]]
then
log_print "${VPN_LOG_FILE}" "${LOG}" "Killing : Id: [${job_id}] Name: [${job_name}] PId: [${job_pid}]..."
log_print "VPN" "Killing : Id: [${job_id}] Name: [${job_name}] PId: [${job_pid}]..."
kill -15 ${job_pid}
fi
done
${LOG} "Flushing status file..."
log_print "VPN" "Flushing status file..."
file_lock ${VPN_STATUS_LOCK} WRITE 9
@@ -285,7 +284,7 @@ vpn_supervisor()
local job_pid
log_print "${VPN_LOG_FILE}" "${LOG}" "Starting Supervisor..."
log_print "VPN" "Starting Supervisor..."
# Main Loop
@@ -301,7 +300,7 @@ vpn_supervisor()
if [[ ${job_pid} == 0 ]] || [[ $rc != 0 ]]
then
log_print "${VPN_LOG_FILE}" "${LOG}" "Restarting Cmd: [${job_cmd}]..."
log_print "VPN" "Restarting Cmd: [${job_cmd}]..."
eval ${DEBUG} ${job_cmd}
@@ -315,16 +314,16 @@ vpn_supervisor()
tab_assign VPN_JOB_TAB "${job_id},PId" "${job_pid}"
tab_assign VPN_JOB_TAB "${job_id},Date" "$(date --rfc-3339=seconds -u)"
log_print "${VPN_LOG_FILE}" "${LOG}" "PId: [${VPN_JOB_TAB["${job_id},PId"]}]!"
log_print "VPN" "PId: [${VPN_JOB_TAB["${job_id},PId"]}]!"
fi
done
log_print "${VPN_LOG_FILE}" "${LOG}" "Saving VPN tab..."
log_print "VPN" "Saving VPN tab..."
vpn_job_tab_save
sleep 30
sleep ${VPN_LOOP_DELAY}
log_print "${VPN_LOG_FILE}" "${LOG}" "Refreshing DNS entries..."
log_print "VPN" "Refreshing DNS entries..."
network_dst_address_refresh_all
done
}
@@ -333,6 +332,38 @@ vpn_supervisor()
#--------------------------------------------------------------------------------------------------------------------------
# vpn_kill_jobs
#--------------------------------------------------------------------------------------------------------------------------
vpn_jobs_kill()
{
local job_id
for job_id in ${VPN_JOB_ID_LIST}
do
vpn_job_tab_get "${job_id}"
${DEBUG} kill -0 "${job_pid}" 2>/dev/null
rc=$?
if [[ ${job_pid} != 0 ]] && [[ $rc == 0 ]]
then
log_print "VPN" "Killing Job Id: [${job_id}] Job_PId: [${job_pid}] Cmd: [${job_cmd}]..."
kill -15 "${job_pid}"
fi
done
log_print "VPN" "Saving VPN tab..."
vpn_job_tab_save
}
#--------------------------------------------------------------------------------------------------------------------------
# vpn_init
#--------------------------------------------------------------------------------------------------------------------------
@@ -347,7 +378,7 @@ vpn_init()
file_dir_init ${VPN_STATUS_FILE} root apache
file_unlock 9
file_dir_init ${VPN_LOG_FILE} root apache
# file_dir_init ${VPN_LOG_FILE} root apache
if [[ -s "${VPN_STATUS_FILE}" ]]
then
@@ -404,11 +435,11 @@ vpn_start()
vpn_supervisor &
daemon_pid=$!
log_print "${VPN_LOG_FILE}" "${LOG}" "Daemon started, PId: [${daemon_pid}]"
log_print "VPN" "Daemon started, PId: [${daemon_pid}]"
echo >${VPN_PID_FILE} "${daemon_pid}"
else
log_print "${VPN_LOG_FILE}" "${LOG}" "Daemon already running PId: [${daemon_pid}]"
log_print "VPN" "Daemon already running PId: [${daemon_pid}]"
fi
}
@@ -437,14 +468,16 @@ vpn_stop()
if [[ "${daemon_pid}" == "0" ]] || [[ $rc != 0 ]]
then
log_print "${VPN_LOG_FILE}" "${LOG}" "Daemon already stoped!"
log_print "VPN" "Daemon already stoped!"
else
log_print "${VPN_LOG_FILE}" "${LOG}" "Stoping daemon, PId: [${daemon_pid}]..."
log_print "VPN" "Stoping daemon, PId: [${daemon_pid}]..."
kill -15 ${daemon_pid}
fi
>${VPN_PID_FILE}
vpn_jobs_kill
vpn_job_tab_deinit
}