- как узнать по полному пути к исполняемому файлу запущен ли о..., allez, 18:29 , 04-Июн-09 (1) +1
>известен полный путь к файлу и название файла. >нужно проверить исполняется ли этот файл в данный момент. >просто проверить: >ps -ef | grep <название файла> >нельзя, так как с таким же именем может быть запущен файл из >другой директории. Посмотрите на вывод команды "ls -l /proc/$PID/exe" и попробуйте сделать свои собственные выводы. ;-) Но предупреждаю: данный способ сработает только в Линуксе. Поэтому, если Вы пользуетесь не Линуксом (кстати, неплохо бы сообщать, какая ОС используется), то придется искать другие пути решения проблемы.
- как узнать по полному пути к исполняемому файлу запущен ли о..., Sanders, 18:49 , 04-Июн-09 (2)
>Посмотрите на вывод команды "ls -l /proc/$PID/exe" и попробуйте сделать свои собственные >выводы. ;-) >Но предупреждаю: данный способ сработает только в Линуксе. Поэтому, если Вы пользуетесь >не >Линуксом (кстати, неплохо бы сообщать, какая ОС используется), то придется искать другие >пути >решения проблемы. к сожалению этот вариант не подходит: 1. я не знаю пид процесса. хорошо, по имени файла я могу получить список пидов связанных с этим именем файла, но 2. $ ls -l /proc/$PID/exe ls: cannot read symbolic link /proc/$PID/exe: Permission denied так как я не админ на сервере. используется Debian.
- как узнать по полному пути к исполняемому файлу запущен ли о..., angra, 19:09 , 04-Июн-09 (3)
> так как я не админ на сервере. Ну тогда тебе незачем знать лишнее о чужих процессах. А если очень надо, то договаривайся с админом.
- как узнать по полному пути к исполняемому файлу запущен ли о..., Sanders, 21:31 , 04-Июн-09 (4)
>Ну тогда тебе незачем знать лишнее о чужих процессах. А если очень >надо, то договаривайся с админом. меня чужие процессы не интересуют... этот файл может быть запущен "мной" (под моей учеткой).
- как узнать по полному пути к исполняемому файлу запущен ли о..., angra, 21:55 , 04-Июн-09 (5) +1
Ну тогда зачем ты проверял на чужих? Соответствующие симлинки для своих процессов спокойно читаются. На всякий случай добавлю, что проход по дереву пидов в /proc будет эффективней и проще чем работа с ps.
- как узнать по полному пути к исполняемому файлу запущен ли о..., Sanders, 22:31 , 04-Июн-09 (6)
>Ну тогда зачем ты проверял на чужих? Соответствующие симлинки для своих процессов >спокойно читаются. >На всякий случай добавлю, что проход по дереву пидов в /proc будет >эффективней и проще чем работа с ps. да, действительно, для своих процессов читаются... спасибо
- как узнать по полному пути, Andrey Mitrofanov, 10:20 , 05-Июн-09 (7) +1
>>Посмотрите на вывод команды "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 как.
- как узнать по полному пути, Sanders, 12:54 , 05-Июн-09 (8)
>$ 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-файл создаю, но мне необходимо добавить в скрипты "защиту от дурака", на случай если кто запустил бинарник руками.
- как узнать по полному пути, Arpo, 07:59 , 10-Июн-09 (9)
>[оверквотинг удален] >>sort+uniq+sort -- вариант-часть посмотреть, сделать выводы. > >спасибо! > >>Но обычно проблему проверки, запущен ли процесс (сервис в частности) начинают решать >>в момент запуска: pid-файл создают (кууууча примеров - в /etc/init.d/), или >>ещё http:/openforum/vsluhforumID9/7156.html как. > >я pid-файл создаю, но мне необходимо добавить в скрипты "защиту от дурака", >на случай если кто запустил бинарник руками. Ну а если вы создаете PID файл, что мешает каждый раз при запуске проверять его? Если он есть то бинарник запущен, если нет то нет.
- как узнать по полному пути, Sanders, 10:01 , 10-Июн-09 (10)
>>я pid-файл создаю, но мне необходимо добавить в скрипты "защиту от дурака", >>на случай если кто запустил бинарник руками. > >Ну а если вы создаете PID файл, что мешает каждый раз при >запуске проверять его? Если он есть то бинарник запущен, если нет >то нет. Прочитайте внимательно первые 2 строки в этом посте. "Свой" запуск я разумеется по пиду проверяю.
- как узнать по полному пути, Arpo, 14:17 , 10-Июн-09 (11)
>>>я pid-файл создаю, но мне необходимо добавить в скрипты "защиту от дурака", >>>на случай если кто запустил бинарник руками. >> >>Ну а если вы создаете PID файл, что мешает каждый раз при >>запуске проверять его? Если он есть то бинарник запущен, если нет >>то нет. > >Прочитайте внимательно первые 2 строки в этом посте. "Свой" запуск я разумеется >по пиду проверяю. Я прочел все посты, и из последнего мне стало ясно, что вы запускаете скрипт и хотите сделать защиту от дураков... Если это ваш скрипт, как может его запустит кто то другой? Даже если и может, в этом скрипте можно проверять запущена ли другая копия ... А вот если вы имелли ввиду, что из скрипта запускается ЧТО-ТО, и именно это что-то вы хотите проверить, то это совсем другой вопрос... В любом случае, вам лучьше знать чего вы хотите, Удачи!!! )
- как узнать по полному пути, Sanders, 14:21 , 10-Июн-09 (12)
>А вот если вы имелли ввиду, что из скрипта запускается ЧТО-ТО, и >именно это что-то вы хотите проверить, то это совсем другой вопрос... я имел ввиду, что файлик с пермишном х можно запустить ручками.
|