From c5bbf920223aa7c11bbe5a3370fa4f7ac2380ff6 Mon Sep 17 00:00:00 2001 From: fbt Date: Sat, 28 Mar 2020 19:12:15 +0300 Subject: [PATCH] experimental netns support and some fixes Signed-off-by: fbt --- ssm | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/ssm b/ssm index e1897a3..0be637b 100755 --- a/ssm +++ b/ssm @@ -143,10 +143,12 @@ run_service_action() { spawn() { if [[ $service_logfile_out == "$service_logfile_err" ]]; then - exec "$@" >"$service_logfile_out" 2>&1 + exec 3>"$service_logfile_out" else - exec "$@" >"$service_logfile_out" 2>"$service_logfile_err" + exec 3>"$service_logfile_err" fi + + exec "$@" >"$service_logfile_out" 2>&3 }; readonly spawn; cgroup_get_procs() { @@ -243,7 +245,7 @@ svc() { # One service failure, two service failures... if service_success_exit u "$job_exit"; then job_success = 1 - (( fail_counter )) && fail_counter-- + (( fail_counter )) && fail_counter=0 else job_success = 0 fail_counter++ @@ -416,6 +418,10 @@ start() { mktmpfiles || return 13 + if [[ $service_netns ]]; then + service_command=( ip netns exec "$service_netns" "${service_command[@]}" ) + fi + svc "${service_command[@]}" & job=$! if service_oneshot; then