Compare commits
4 Commits
Author | SHA1 | Date |
---|---|---|
Jack L. Frost | 7c584eb8ee | |
Jack L. Frost | 608e7d4d9d | |
Jack L. Frost | be3d90ea79 | |
Jack L. Frost | c5bbf92022 |
34
ssm
34
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++
|
||||
|
@ -613,6 +615,7 @@ var flag_reset_exit = 0
|
|||
var flag_reread_service = 0
|
||||
var flag_forget_service = 0
|
||||
var flag_load_service = 0
|
||||
var flag_no_netns = 0
|
||||
|
||||
## check for some environment stuff
|
||||
var EDITOR := 'vim'
|
||||
|
@ -674,14 +677,6 @@ case "$0" in
|
|||
(*) _self = "$PWD/$0";;
|
||||
esac
|
||||
|
||||
# Warn the user of deprecated stuff.
|
||||
for p in "/etc/ssm/init.d" "$XDG_CONFIG_HOME/ssm/init.d"; do
|
||||
if [[ -d "$p" ]]; then
|
||||
printf 'WARNING: `%s` was renamed to `%s`! Please move your scripts accordingly!\n' "$p" "${p%init.d}services" >&2
|
||||
service_path += "$p"
|
||||
fi
|
||||
done
|
||||
|
||||
# Source the config
|
||||
if cfg_file is file; then
|
||||
source "$cfg_file" || die 37 "Failed to load config: $cfg_file"
|
||||
|
@ -726,6 +721,9 @@ while (( $# )); do
|
|||
(-i|--info)
|
||||
action = 'info';;
|
||||
|
||||
(--no-netns)
|
||||
flag_no_netns = 1;;
|
||||
|
||||
(--) shift; break;;
|
||||
(-*) printf 'Unknown key: %s\n' "$1" >&2; exit 1;;
|
||||
(*) break;;
|
||||
|
@ -740,7 +738,11 @@ for d in "$rundir" "$rundir/current" "$logdir"; do
|
|||
done
|
||||
|
||||
# Common service path
|
||||
service_path += "$XDG_CONFIG_HOME/ssm/services" '/etc/ssm/services' "$rundir/services" "$usrdir/services"
|
||||
if (( UID )); then
|
||||
service_path += "$rundir/current" "$XDG_CONFIG_HOME/ssm/services" '/etc/ssm/services' "$usrdir/services"
|
||||
else
|
||||
service_path += "$rundir/current" '/etc/ssm/services' "$usrdir/services"
|
||||
fi
|
||||
|
||||
# Special actions
|
||||
if flag_list_services; then
|
||||
|
@ -775,12 +777,13 @@ if [[ $service_name == /* ]]; then
|
|||
service_config = "$service_name"
|
||||
service_name = "${service_name##*/}"
|
||||
else
|
||||
for i in "$service_config_current" "${service_path[@]/%//$service_name}"; do
|
||||
for i in "${service_path[@]/%//$service_name}"; do
|
||||
[[ -f "$i" ]] && {
|
||||
service_config = "$i"
|
||||
break
|
||||
}
|
||||
done
|
||||
|
||||
fi
|
||||
|
||||
# We really don't want this overriden
|
||||
|
@ -822,6 +825,11 @@ flag_reset_exit && { reset-exit; die $?; }
|
|||
# Get the service config
|
||||
source -- "$service_config" "${@:3}" || die 7 "Failed to read the service config: $service_config"
|
||||
|
||||
# Rexec ourselves in the requested netns
|
||||
flag_no_netns || {
|
||||
[[ $service_netns ]] && exec ip netns exec "$service_netns" "$0" --no-netns "$service_name" "$@"
|
||||
}
|
||||
|
||||
# “Load” the service into memory
|
||||
if ! service_config == "$service_config_current" && service_remember; then
|
||||
cat "$service_config" > "$rundir/current/$service_name"
|
||||
|
|
Loading…
Reference in New Issue