известен полный путь к файлу и название файла.
нужно проверить исполняется ли этот файл в данный момент.
просто проверить:
ps -ef | grep <название файла>
нельзя, так как с таким же именем может быть запущен файл из другой директории.
>известен полный путь к файлу и название файла.
>нужно проверить исполняется ли этот файл в данный момент.
>просто проверить:
>ps -ef | grep <название файла>
>нельзя, так как с таким же именем может быть запущен файл из
>другой директории.Посмотрите на вывод команды "ls -l /proc/$PID/exe" и попробуйте сделать свои собственные выводы. ;-)
Но предупреждаю: данный способ сработает только в Линуксе. Поэтому, если Вы пользуетесь не
Линуксом (кстати, неплохо бы сообщать, какая ОС используется), то придется искать другие пути
решения проблемы.
>Посмотрите на вывод команды "ls -l /proc/$PID/exe" и попробуйте сделать свои собственные
>выводы. ;-)
>Но предупреждаю: данный способ сработает только в Линуксе. Поэтому, если Вы пользуетесь
>не
>Линуксом (кстати, неплохо бы сообщать, какая ОС используется), то придется искать другие
>пути
>решения проблемы.к сожалению этот вариант не подходит:
1. я не знаю пид процесса.
хорошо, по имени файла я могу получить список пидов связанных с этим именем файла, но
2. $ ls -l /proc/$PID/exe
ls: cannot read symbolic link /proc/$PID/exe: Permission denied
так как я не админ на сервере.используется Debian.
> так как я не админ на сервере.Ну тогда тебе незачем знать лишнее о чужих процессах. А если очень надо, то договаривайся с админом.
>Ну тогда тебе незачем знать лишнее о чужих процессах. А если очень
>надо, то договаривайся с админом.меня чужие процессы не интересуют... этот файл может быть запущен "мной" (под моей учеткой).
Ну тогда зачем ты проверял на чужих? Соответствующие симлинки для своих процессов спокойно читаются.
На всякий случай добавлю, что проход по дереву пидов в /proc будет эффективней и проще чем работа с ps.
>Ну тогда зачем ты проверял на чужих? Соответствующие симлинки для своих процессов
>спокойно читаются.
>На всякий случай добавлю, что проход по дереву пидов в /proc будет
>эффективней и проще чем работа с ps.да, действительно, для своих процессов читаются... спасибо
>>Посмотрите на вывод команды "ls -l /proc/$PID/exe" и попробуйте сделать свои собственные
>выводы. ;-)
>1. я не знаю пид процесса.
> хорошо, по имени файла я могу получить список пидов
>связанных с этим именем файла, но
>2. $ ls -l /proc/$PID/exe
> ls: cannot read symbolic link /proc/$PID/exe: Permission denied
> так как я не админ на сервере.
>используется Debian.$ echo /proc/*/exe |xargs -n1 readlink -f 2>/dev/null |sort |uniq -c |sort -k1,1nr
*+xargs решают пункт 1.
"2>/dev/null" не смотрит на проблему п.2.
sort+uniq+sort -- вариант-часть посмотреть, сделать выводы.Но обычно проблему проверки, запущен ли процесс (сервис в частности) начинают решать в момент запуска: pшd-файл создают (кууууча примеров - в /etc/init.d/), или ещё http:/openforum/vsluhforumID9/7156.html как.
>$ echo /proc/*/exe |xargs -n1 readlink -f 2>/dev/null |sort |uniq -c |sort -k1,1nr
>
>*+xargs решают пункт 1.
>"2>/dev/null" не смотрит на проблему п.2.
>sort+uniq+sort -- вариант-часть посмотреть, сделать выводы.спасибо!
>Но обычно проблему проверки, запущен ли процесс (сервис в частности) начинают решать
>в момент запуска: pid-файл создают (кууууча примеров - в /etc/init.d/), или
>ещё http:/openforum/vsluhforumID9/7156.html как.я pid-файл создаю, но мне необходимо добавить в скрипты "защиту от дурака", на случай если кто запустил бинарник руками.
>[оверквотинг удален]
>>sort+uniq+sort -- вариант-часть посмотреть, сделать выводы.
>
>спасибо!
>
>>Но обычно проблему проверки, запущен ли процесс (сервис в частности) начинают решать
>>в момент запуска: pid-файл создают (кууууча примеров - в /etc/init.d/), или
>>ещё http:/openforum/vsluhforumID9/7156.html как.
>
>я pid-файл создаю, но мне необходимо добавить в скрипты "защиту от дурака",
>на случай если кто запустил бинарник руками.Ну а если вы создаете PID файл, что мешает каждый раз при запуске проверять его? Если он есть то бинарник запущен, если нет то нет.
>>я pid-файл создаю, но мне необходимо добавить в скрипты "защиту от дурака",
>>на случай если кто запустил бинарник руками.
>
>Ну а если вы создаете PID файл, что мешает каждый раз при
>запуске проверять его? Если он есть то бинарник запущен, если нет
>то нет.Прочитайте внимательно первые 2 строки в этом посте. "Свой" запуск я разумеется по пиду проверяю.
>>>я pid-файл создаю, но мне необходимо добавить в скрипты "защиту от дурака",
>>>на случай если кто запустил бинарник руками.
>>
>>Ну а если вы создаете PID файл, что мешает каждый раз при
>>запуске проверять его? Если он есть то бинарник запущен, если нет
>>то нет.
>
>Прочитайте внимательно первые 2 строки в этом посте. "Свой" запуск я разумеется
>по пиду проверяю.Я прочел все посты, и из последнего мне стало ясно, что вы запускаете скрипт и хотите сделать защиту от дураков... Если это ваш скрипт, как может его запустит кто то другой? Даже если и может, в этом скрипте можно проверять запущена ли другая копия ...
А вот если вы имелли ввиду, что из скрипта запускается ЧТО-ТО, и именно это что-то вы хотите проверить, то это совсем другой вопрос...В любом случае, вам лучьше знать чего вы хотите, Удачи!!! )
>А вот если вы имелли ввиду, что из скрипта запускается ЧТО-ТО, и
>именно это что-то вы хотите проверить, то это совсем другой вопрос...я имел ввиду, что файлик с пермишном х можно запустить ручками.