X-Git-Url: http://ftp.carnet.hr/carnet-debian/scm?a=blobdiff_plain;f=usr%2Fshare%2Fcarnet-upgrade%2Fscripts%2Fcheck_services;fp=usr%2Fshare%2Fcarnet-upgrade%2Fscripts%2Fcheck_services;h=aa24d6ffbfa5f8cbe7af49efafb5d89813b79f14;hb=146551dcb7e1ac36c8722d6cb508800bb9b5b2da;hp=7677ffc740f013660b99a8c0c895026a8a7373be;hpb=ab75f551cbebec6dbb9f4d0bc3d332affde718e7;p=carnet-upgrade.git diff --git a/usr/share/carnet-upgrade/scripts/check_services b/usr/share/carnet-upgrade/scripts/check_services index 7677ffc..aa24d6f 100755 --- a/usr/share/carnet-upgrade/scripts/check_services +++ b/usr/share/carnet-upgrade/scripts/check_services @@ -26,11 +26,30 @@ cs_preupgrade () { done if [ -n "$services" ]; then - db_set cn-upgrade/check-services "$services" + db_set cn3-upgrade/check-services "$services" db_go || true fi } +cs_pgrep () { + local failed_services + + while read line; do + # get service param from stdin + user=$(echo "$line" | awk -F ' ' '{print $2}') + psname=$(echo "$line" | awk -F ' ' '{print $3}') + nicename=$(echo "$line" | awk -F ' ' '{print $4}') + + # check if service is running + if ! pgrep -u $user -f "$psname" > /dev/null; then + failed_services="$failed_services, $nicename" + + fi + done + + echo ${failed_services#, } +} + # uzmi iz debconfa instalirane servise, i provjeri rade li cs_postupgrade () { local services i failed_services msg_header @@ -43,21 +62,15 @@ cs_postupgrade () { ;; esac - db_get cn-upgrade/check-services || true - services="$RET" - - for i in $(echo "$services"); do - user=$(echo "$services_to_check" | grep ^${i} | sed 's/ */ /g'| awk -F' ' '{print $2}') - psname=$(echo "$services_to_check" | grep ^${i} | sed 's/ */ /g'| awk -F' ' '{print $3}') - nicename=$(echo "$services_to_check" | grep ^${i} | sed 's/ */ /g'| awk -F' ' '{print $4}') - if ! pgrep -u $user -f "$psname" > /dev/null; then - if [ -z "$failed_services" ]; then - failed_services="$nicename" - else - failed_services="$failed_services, $nicename" - fi - fi - done + db_get cn3-upgrade/check-services || true + services="${RET// /|}" + + failed_services=$( + echo "$services_to_check" \ + | grep -E "^($services)" \ + | sed 's/ */ /g' \ + | cs_pgrep + ) if [ -n "$failed_services" ]; then notice "$msg_header$msg_failed_services$failed_services" @@ -68,7 +81,7 @@ cs_postupgrade () { # checkiraj da li je sto zapisano u debconf cs_check () { - db_get cn-upgrade/check-services || true + db_get cn3-upgrade/check-services || true debconf="$RET" if [ -n "$debconf" ]; then