Как заблокировать Solaris 10?

В Linux я использую flock lock command для выполнения команды с исключительной блокировкой.

Какая стандартная команда операционной системы Solaris 10 делает то же самое в оболочке?

  • Запуск службы во время запуска
  • Как получить уведомление, когда svcadm перезапустит службу, которая умерла
  • После обновления Solaris и PowerPath хранилище становится неуправляемым
  • Сколько перезагрузок требуется для обновления обновления Solaris 10 для обновления 10?
  • Не удается зарегистрировать или обновить Solaris 11 Express
  • Использование памяти и дискового пространства на Solaris 11
  • Получение патчей Solaris 10
  • tiff2pdf автоматически поворачивает мое изображение
  • 3 Solutions collect form web for “Как заблокировать Solaris 10?”

    Для Solaris нет никакой flock или аналогичной команды. Если я хочу сделать простое блокирование, я использую mkdir поскольку это атомная операция, и избегает возможных условий гонки с обычным файлом проверки / комбинацией касания.

     if ! mkdir /tmp/lockdir >/dev/null 2>&1 then echo >&2 "Lock exists exiting" exit 1 fi 

    После небольшого обсуждения Usenet я использую следующее в качестве обходного пути для команды flock -n lockfile -c command :

     #! /bin/bash if [ $# != 4 -o "$1" = '-h' ] ; then echo "Usage: flock -n lockfile -c command" >&2 exit 1 fi lockfile=$2 command=$4 set -o noclobber if 2>/dev/null : > "$lockfile" ; then trap 'rm -f "$lockfile"' EXIT $BASH -c "$command" else exit 1 fi 

    Я бы объединил две идеи:

     getLock() { PROG=$( basename $0 ) SHAREDLOCK="/tmp/lockdir-$PROG" if mkdir "$SHAREDLOCK" >/dev/null 2>&1 then trap 'rmdir "$SHAREDLOCK"' EXIT chmod 0 "$SHAREDLOCK" # discourage anyone from messing with it else the rmdir might fail else echo >&2 "Lock ($SHAREDLOCK) exists. exiting" exit 1 fi 

    }

    Interesting Posts

    Удалите все в каталоге, используя цикл

    Как искать строку содержит N целевых символов / шаблонов в vim?

    Настройка Utorrent на Linux MINT 18

    Невозможно просмотреть китайские символы в evince или xpdf

    Как изменить раскладку клавиатуры для конкретного виртуального терминала?

    Не удается найти имена очередей печати IPP

    Как написать sed однострочный, чтобы добавить символ после каждого третьего символа?

    Просмотр stdout / stderr службы systemd

    Функциональность Dead key с компоновкой US-Intl в Fedora 23

    Как разместить эмпатию в панели сообщений Gnome 3?

    Force OpenSSH / pam / pam_ldapd для выполнения pam_ldapd (sshd: auth) с аутентификацией с открытым ключом

    Подключиться к целевому хосту через промежуточный хост без предварительного обмена ключами

    словари – общий пакет жалуется на возможную коррупцию debconf

    Команды трубопровода на «тройники» предотвращают изменения переменных среды

    Почему yum пытается пройти через прокси и другое странное поведение?

    Linux и Unix - лучшая ОС в мире.