LINUX.ORG.RU

История изменений

Исправление Zmicier, (текущая версия) :

Но вообще ожидать завершения процессов разумнее по их идентификаторам (PID’ам)

Ну а собственно давайте напишем. Вот, по-моему оно еще и много понятнее:

#!/bin/bash

procwait ()
{
    while kill 2>&- -0 "$1"; do
        sleep 5
    done
}

cd '/var/run/screen/S-msm/'
for screen_file in *; do
    IFS='.' read pid sessionname <<< "$screen_file"
    if [[ -e "/opt/msm/servers/$sessionname" ]]; then
        printf >&2 'Wainting for %s\n' "$sessionname"
        procwait "$pid" &
    fi
done
wait

Опять же — не проверял.

Исправление Zmicier, :

Но вообще ожидать завершения процессов разумнее по их идентификаторам (PID’ам)

Ну а собственно давайте напишем. Вот, по-моему оно еще и много понятнее:

#!/bin/bash

procwait ()
{
    while kill -0 "$1"; do
        sleep 5
    done
}

cd '/var/run/screen/S-msm/'
for screen_file in *; do
    IFS='.' read pid sessionname <<< "$screen_file"
    if [[ -e "/opt/msm/servers/$sessionname" ]]; then
        printf >&2 'Wainting for %s\n' "$sessionname"
        procwait "$pid" &
    fi
done
wait

Опять же — не проверял.

Исходная версия Zmicier, :

Но вообще ожидать завершения процессов разумнее по их идентификаторам (PID’ам)

Ну а собственно давайте напишем. Вот:

#!/bin/bash

procwait ()
{
    while kill -0 "$1"; do
        sleep 5
    done
}

cd '/var/run/screen/S-msm/'
for screen_file in *; do
    IFS='.' read pid sessionname <<< "$screen_file"
    if [[ -e "/opt/msm/servers/$sessionname" ]]; then
        printf >&2 'Wainting for %s\n' "$sessionname"
        procwait "$pid" &
    fi
done
wait

Опять же — не проверял.