Проверка и проверка блокировки из другого процесса

Если бы у вас было k = k $ i , он добавлял бы в каждую итерацию, обрабатываемую в данный момент поле в конце k (так что вы получите: 123321333).

Если бы у вас было k = k FS $ i , вы бы получили -123-321-333.

Тернар, если только гарантирует, что в начале нет дефиса, потому что, когда awk обрабатывает $ 1, k пусто и, следовательно, тернарно, если возвращает "".

3
13.04.2017, 15:36
1 ответ

Я использовал следующую функцию в моем скрипте, чтобы выполнить это:

getPIDLock () {
    if [ ! -e "$LockFile" ]; then
        return 0 # Not an error, but lsof will emit a lot of text if the file doesn't exist
    fi
    local PIDLock=$( lsof -F p "$1" | head -n 1 )
    local strEcho='echo ${PID:1}'
    bash -c "PID=\"$PIDLock\";$strEcho;" # Assuming system has BASH, but not assuming that the default shell is BASH
    return 0
}

Это будет выдавать PID, если файл, о котором идет речь, имеет блокировку; в противном случае будет выдана пустая строка.

PID=$( getPIDLock "/path/to/pidfile" )
if [ -n $PID ]; then
    # Do your thing
fi
0
27.01.2020, 21:37

Теги

Похожие вопросы