При попытке выполнить команду из сценария, передайте -t
опция к ssh:
ssh -i file.pem -t myhost “sudo -n myscript”
-n
опция к sudo будет препятствовать тому, чтобы sudo запросил пароль; если команда потребует пароля, то Вы получите ошибку.
Это работало на доступ к экземплярам EC2.
lslocks
, от пакета util-linux, делает точно это.
В MODE
столбец, процессы, ожидающие блокировки, будет отмечен с a *
.
Две возможности: lsof
(мое предпочтение) или lslk
(специально для блокировок файла):
[root@policyServer ~]# lslk | grep "master.lock"
SRC PID DEV INUM SZ TY M ST WH END LEN NAME
master 1650 253,0 12423 33 w 0 0 0 0 0 /var/lib/postfix/master.lock
[root@policyServer ~]# lsof | grep "master.lock"
master 1650 root 10uW REG 253,0 33 12423 /var/lib/postfix/master.lock
Вывод lslk является self-expanatory, но lsof
помещает описание блокировки в столбец "FD" (который является 10uW
выше). Из страницы справочника:
The mode character is followed by one of these lock characters, describing the type of lock applied to the file:
N for a Solaris NFS lock of unknown type;
r for read lock on part of the file;
R for a read lock on the entire file;
w for a write lock on part of the file;
W for a write lock on the entire file;
u for a read and write lock of any length;
U for a lock of unknown type;
x for an SCO OpenServer Xenix lock on part of the file;
X for an SCO OpenServer Xenix lock on the entire file;
space if there is no lock.
Так столбец "FD" lsof
выше ломается к:
10
Литеральный дескриптор этого открытого файла. С чем связан /proc/1650/fd/10
u
Файл открыт для чтения и записи
W
программа имеет запись, соединяют файл.
flock
! = взаимное исключение. Ваш grep отсутствовал бы, блокировки как та в сообщении (не говоря уже о первом поле название программы...)
– Bratchley
09.08.2013, 14:49
LSOF может помочь увидеть список файлов. Вот способ увидеть заблокированные файлы.
sudo lsof /var/lib/dpkg/lock
в случае, если lsof
отсутствует в системе, ls /proc/*/fd/* | grep LOCK_FILE_NAME
должен предоставить ту же информацию.
lsof
подход Joel Davis предлагает. – mattdm 08.08.2013, 21:26lslocks
чтения/proc/locks
, в повышении можно считать, что непосредственно сами, с протестом, что файлы определяются устройством и inode, а не именем. Так как Вы знаете файл, который не должен быть проблемой. Заблокированный доступ имеет a->
префикс перед столбцом типа блокировки (таким образом добавляющий столбец к той строке). – mr.spuratic 09.08.2013, 13:34