The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"как узнать по полному пути к исполняемому файлу запущен ли о..."
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [ Отслеживать ]

"как узнать по полному пути к исполняемому файлу запущен ли о..."  +/
Сообщение от Sanders (ok) on 04-Июн-09, 18:17 
известен полный путь к файлу и название файла.
нужно проверить исполняется ли этот файл в данный момент.
просто проверить:
ps -ef | grep <название файла>
нельзя, так как с таким же именем может быть запущен файл из другой директории.
Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "как узнать по полному пути к исполняемому файлу запущен ли о..."  +1 +/
Сообщение от allez (ok) on 04-Июн-09, 18:29 
>известен полный путь к файлу и название файла.
>нужно проверить исполняется ли этот файл в данный момент.
>просто проверить:
>ps -ef | grep <название файла>
>нельзя, так как с таким же именем может быть запущен файл из
>другой директории.

Посмотрите на вывод команды "ls -l /proc/$PID/exe" и попробуйте сделать свои собственные выводы. ;-)
Но предупреждаю: данный способ сработает только в Линуксе. Поэтому, если Вы пользуетесь не
Линуксом (кстати, неплохо бы сообщать, какая ОС используется), то придется искать другие пути
решения проблемы.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "как узнать по полному пути к исполняемому файлу запущен ли о..."  +/
Сообщение от Sanders (ok) on 04-Июн-09, 18:49 
>Посмотрите на вывод команды "ls -l /proc/$PID/exe" и попробуйте сделать свои собственные
>выводы. ;-)
>Но предупреждаю: данный способ сработает только в Линуксе. Поэтому, если Вы пользуетесь
>не
>Линуксом (кстати, неплохо бы сообщать, какая ОС используется), то придется искать другие
>пути
>решения проблемы.

к сожалению этот вариант не подходит:
1. я не знаю пид процесса.
   хорошо, по имени файла я могу получить список пидов связанных с этим именем файла, но
2. $ ls -l /proc/$PID/exe
   ls: cannot read symbolic link /proc/$PID/exe: Permission denied
   так как я не админ на сервере.

используется Debian.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "как узнать по полному пути к исполняемому файлу запущен ли о..."  +/
Сообщение от angra (ok) on 04-Июн-09, 19:09 
>   так как я не админ на сервере.

Ну тогда тебе незачем знать лишнее о чужих процессах. А если очень надо, то договаривайся с админом.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "как узнать по полному пути к исполняемому файлу запущен ли о..."  +/
Сообщение от Sanders (ok) on 04-Июн-09, 21:31 
>Ну тогда тебе незачем знать лишнее о чужих процессах. А если очень
>надо, то договаривайся с админом.

меня чужие процессы не интересуют... этот файл может быть запущен "мной" (под моей учеткой).

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "как узнать по полному пути к исполняемому файлу запущен ли о..."  +1 +/
Сообщение от angra (ok) on 04-Июн-09, 21:55 
Ну тогда зачем ты проверял на чужих? Соответствующие симлинки для своих процессов спокойно читаются.
На всякий случай добавлю, что проход по дереву пидов в /proc будет эффективней и проще чем работа с ps.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "как узнать по полному пути к исполняемому файлу запущен ли о..."  +/
Сообщение от Sanders (ok) on 04-Июн-09, 22:31 
>Ну тогда зачем ты проверял на чужих? Соответствующие симлинки для своих процессов
>спокойно читаются.
>На всякий случай добавлю, что проход по дереву пидов в /proc будет
>эффективней и проще чем работа с ps.

да, действительно, для своих процессов читаются... спасибо

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "как узнать по полному пути"  +1 +/
Сообщение от Andrey Mitrofanov on 05-Июн-09, 10:20 
>>Посмотрите на вывод команды "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 как.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "как узнать по полному пути"  +/
Сообщение от Sanders (ok) on 05-Июн-09, 12:54 
>$ 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-файл создаю, но мне необходимо добавить в скрипты "защиту от дурака", на случай если кто запустил бинарник руками.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "как узнать по полному пути"  +/
Сообщение от Arpo (ok) on 10-Июн-09, 07:59 
>[оверквотинг удален]
>>sort+uniq+sort -- вариант-часть посмотреть, сделать выводы.
>
>спасибо!
>
>>Но обычно проблему проверки, запущен ли процесс (сервис в частности) начинают решать
>>в момент запуска: pid-файл создают (кууууча примеров - в /etc/init.d/), или
>>ещё http:/openforum/vsluhforumID9/7156.html как.
>
>я pid-файл создаю, но мне необходимо добавить в скрипты "защиту от дурака",
>на случай если кто запустил бинарник руками.

Ну а если вы создаете PID файл, что мешает каждый раз при запуске проверять его? Если он есть то бинарник запущен, если нет то нет.  

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

10. "как узнать по полному пути"  +/
Сообщение от Sanders (ok) on 10-Июн-09, 10:01 
>>я pid-файл создаю, но мне необходимо добавить в скрипты "защиту от дурака",
>>на случай если кто запустил бинарник руками.
>
>Ну а если вы создаете PID файл, что мешает каждый раз при
>запуске проверять его? Если он есть то бинарник запущен, если нет
>то нет.

Прочитайте внимательно первые 2 строки в этом посте. "Свой" запуск я разумеется по пиду проверяю.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

11. "как узнать по полному пути"  +/
Сообщение от Arpo (ok) on 10-Июн-09, 14:17 
>>>я pid-файл создаю, но мне необходимо добавить в скрипты "защиту от дурака",
>>>на случай если кто запустил бинарник руками.
>>
>>Ну а если вы создаете PID файл, что мешает каждый раз при
>>запуске проверять его? Если он есть то бинарник запущен, если нет
>>то нет.
>
>Прочитайте внимательно первые 2 строки в этом посте. "Свой" запуск я разумеется
>по пиду проверяю.

Я прочел все посты, и из последнего мне стало ясно, что вы запускаете скрипт и хотите сделать защиту от дураков... Если это ваш скрипт, как может его запустит кто то другой? Даже если и может, в этом скрипте можно проверять запущена ли другая копия ...
А вот если вы имелли ввиду, что из скрипта запускается ЧТО-ТО, и именно это что-то вы хотите проверить, то это совсем другой вопрос...

В любом случае, вам лучьше знать чего вы хотите, Удачи!!! )

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

12. "как узнать по полному пути"  +/
Сообщение от Sanders (ok) on 10-Июн-09, 14:21 
>А вот если вы имелли ввиду, что из скрипта запускается ЧТО-ТО, и
>именно это что-то вы хотите проверить, то это совсем другой вопрос...

я имел ввиду, что файлик с пермишном х можно запустить ручками.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру