procd: service instances can now report an error of why they failed to start.
[librecmc/librecmc.git] / package / system / procd / files / procd.sh
index bee32938377afb171b5375e6c9e8ca9eec6939ee..228652db97e3f1d5a0fb3de6524d3110516da0d7 100644 (file)
@@ -131,6 +131,11 @@ _procd_set_param() {
                command|netdev|file|respawn|watch)
                        _procd_add_array "$type" "$@"
                ;;
+               error)
+                       json_add_array "$type"
+                       json_add_string "" "$@"
+                       json_close_array
+               ;;
                nice)
                        json_add_int "$type" "$1"
                ;;
@@ -207,8 +212,13 @@ _procd_add_validation() {
 
 _procd_append_param() {
        local type="$1"; shift
+       local _json_no_warning=1
 
        json_select "$type"
+       [ $? = 0 ] || {
+               _procd_set_param "$type" "$@"
+               return
+       }
        case "$type" in
                env|data|limits)
                        _procd_add_table_data "$@"
@@ -216,6 +226,9 @@ _procd_append_param() {
                command|netdev|file|respawn|watch)
                        _procd_add_array_data "$@"
                ;;
+               error)
+                       json_add_string "" "$@"
+               ;;
        esac
        json_select ..
 }