LINUX.ORG.RU
решено ФорумTalks

Этот pid чей надо pid. Чем докажешь?

 ,


1

1

Ок, запустил я программу и запомнил её pid чтобы дальше подло делать с ней всякие нехорошести. Но как я могу быть уверен, что когда дело дойдёт до нехорошестей, что под данным pid-ом всё та же программа?
Ну можно, конечно, посмотреть на имя процесса, но это проверит лишь то, что запущена ТАКАЯ ЖЕ программа, но не факт что ТА ЖЕ. Т.е. это может быть другой экземпляр программы, работающий сейчас с другими данными. И трогать его не моги, за его малый pid, малый pid.

Как разруливать переиспользование pid-ов другими программами?

РЕШЕНИЕ:

 env FOO=BAR htop

Вот так можно запустить нужную программу, а потом через /proc/pid/environ проверять она ли это.



Последнее исправление: Usruser (всего исправлений: 1)

Ответ на: комментарий от i-rinat

Надо раскрепостить сознание. А кто не может - пусть накладывает маску и смотрит статическую часть pidа

vaddd ★☆
()
Ответ на: комментарий от cocucka

Лучше полные паспортные данные + координаты места расположения запустившего, а так же фотографии юзера на момент запуска 3x4, 9x10, A6,A5,4,3,2,1,0, фас, анфас, профиль... флюрография и экг.

anc ★★★★★
()
  • Рандомный PID даёт очень высокий шанс, что точно такой же процесс с тем же окружением не получит такой же PID. Не знаю как в Linux, но во FreeBSD такая возможность есть, и не пользоваться ей как-то странно;
  • Лок-файл с PID и таймстампом запуска.
mord0d ★★★★★
()
Ответ на: комментарий от windows10

Верно. У нас на винде это значение равно 4.2 млрд.

https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/ns-proce...
Для Ъ
typedef struct _PROCESS_INFORMATION {
HANDLE hProcess;
HANDLE hThread;
DWORD dwProcessId;
DWORD dwThreadId;
} PROCESS_INFORMATION, *PPROCESS_INFORMATION, *LPPROCESS_INFORMATION;
Пояснения нужны?

anc ★★★★★
()

Шел 2022, люди разучились использовать fork().

GFORGX ★★★
()

Когда из той же программы, из которой ты узнавал её пид, ты делаешь свои нехорошести, то это 100% ты.

deep-purple ★★★★★
()
Ответ на: комментарий от mord0d

Рандомный PID даёт очень высокий шанс, что точно такой же процесс с тем же окружением не получит такой же PID. Не знаю как в Linux, но во FreeBSD такая возможность есть, и не пользоваться ей как-то странно;

Лок-файл с PID и таймстампом запуска.

Я так понимаю, что топикстартер имел в виду процессы, которые запускает не он, а что-то другое. Трейсить свои собственные процессы, они могут вести запись в отдельную таблицу - не сложно, сложнее наблюдать например за тыщей php-fpm, которые запускаются сервером по мере необходимости.

Кстати мне даже интересно стало. test.pl изменять нельзя:

#!/bin/bash
perl test.pl
perl test.pl
perl test.pl
perl test.pl #PID именно этого процесса я хочу узнать
perl test.pl
perl test.pl
windows10 ★★★★★
()
Ответ на: комментарий от deep-purple

Когда из той же программы, из которой ты узнавал её пид, ты делаешь свои нехорошести, то это 100% ты.

На самом деле вопрос очень интересный. Мне попадался проект, где клиент парсил каталоги из разных интернет-магазинов. Там у него запускалось много PHP скриптов, на долгое время подвисающих, минут на 5-10, если не больше. Одновременно выполняться могли десятки тысяч процессов наподобие /usr/bin/php /var/www/html/parse.php. Код - проприетарный, скомпилирован ioncube loader'ом. То есть изменять его было невозможно. Задача была в другом, но вот если бы клиент попросил меня сделать что-то нехорошее с конкретным процессом, ну там например мониторить и по его завершению - слать мыло на почту, что такой-то процесс завершился - то у меня бы возникли вопросы как у топикстартера.

windows10 ★★★★★
()
Ответ на: комментарий от i-rinat

В Windows можно взять HANDLE процесса которое будет оставаться валидным пока не вызовешь CloseHandle, в том числе и после завершения процесса, на который указывает HANDLE.

X512 ★★★★★
()
Ответ на: комментарий от windows10

Я так понимаю, что топикстартер имел в виду процессы, которые запускает не он, а что-то другое.

Ну так написать обёртку, которую будут дёргать все. А если нет, то kern.randompid=1 повышает шансы на порядки.

mord0d ★★★★★
()
Ответ на: комментарий от windows10

Следи за руками: «из той же программы, из которой ты узнавал её пид»

deep-purple ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.