Как получить pid процесса, как только он откроется. Например, скажем, мы запустим ./file.pl, а затем ./file2.pl Как оба эти файла создадут pid в/proc/folder. Как я могу сразу узнать, был ли процесс создан при запуске исполняемого файла. У меня есть файл со всеми командами, готовыми к запуску, как только он получает зеленый сигнал о том, что в папке/proc/есть новый процесс. Как мне это сделать? EDIT: Пожалуйста, не отвечайте командой оболочки. Мне не нужно знать пид. Мне нужно разработать скрипт, который может знать сразу же, что у нас гость в отделе ProcПолучить PID процесса при его открытии
ответ
Если запустить процесс с помощью оболочки, а затем начать процесс в фоновом режиме:
./your_prog &
Получить идентификатор процесса:
echo $!
Если сценарий даст вам приглашение оболочки обратно, вы можете сделать:
./your_prog
pidof -x your_prog
Испытано ОК с этим PERL скрипт:
#!/usr/bin/perl
if (fork() == 0) {
sleep(600);
}
вам нужно
chmod +x your_prog
раньше ...
Hello @sputnick. Спасибо за ответ, но я ищу сценарий, который делает это. Я не хочу запускать файл. Я имею в виду, что в файле больше процессов. Я просто хочу получить pid asap – ban
Если у вас нет приглашения сразу, вы можете запустить 'pidof -x your_prog' в другом псевдотерминале –
Каждый процесс может получить свой собственный PID с getpid(2) системного вызова. При создании процесса на fork(2) родительский процесс (например, некоторая оболочка) получает pid нового дочернего процесса. Чтение, например. Advanced Linux Programming для более. И ядро (не программа) создает некоторый подкаталог /proc/1234/
см proc(5) как только он создает процесс Pid 1234.
На самом деле, /proc/
не является реальной файловой системы. Это всего лишь псевдо-файловая система, дающая представление о состоянии ядра и всей системы Linux.
Perl предоставляет вам модуль POSIX для взаимодействия системных вызовов. Сценарий getpid()
сопряжен с использованием переменной Perl $PID или $$
.
Файловая система /proc/
заполняется ядром. Вы могли бы использовать inotify, чтобы следить за изменением в /proc/
, но это, вероятно, плохая идея.
Ваш вопрос непонятен, мы не можем понять, что вы действительно хотите сделать и что вы пробовали.
Попробуйте ниже сценарий оболочки. (Вы, возможно, придется внести изменения в поле ниже сценарий для вашего ожидаемого результата)
#!/bin/bash
nr_proc_before=`ls -l /proc | wc -l`
ls /proc > proc_list_before
./any_executable &
nr_proc_after=`ls -l /proc | wc -l`
ls /proc > proc_list_after
nr_new=`expr $nr_proc_after - $nr_proc_before`
echo "$nr_new processes are created newly"
echo "new processes pids are :"
diff proc_list_after proc_list_before > new_pids
sed "1d" new_pids
if [ nr_new > 0 ] ; then
#trigger your file which has commands.
fi
Insted из any_execuatble вы можете заменить ваши вещи так, что будут созданы новые процессы.
Примечание: это не скрипт, который следит за новым процессом. Этот образец скрипта может дать вам идею решить вашу проблему. Пожалуйста, ответьте на этот ответ, я могу переопределить свой ответ.
- 1. PHP получить PID процесса и убить его
- 2. Получить имя процесса pid
- 3. Как получить pid процесса?
- 4. Получить PID нового процесса
- 5. Получить имя процесса по PID
- 6. Как получить pid определенного процесса
- 7. Имя процесса из его pid в linux
- 8. Как получить PID фонового процесса?
- 9. PHP: получить PID определенного процесса
- 10. Получить PID запуска процесса firefox
- 11. Получить pid запущенного процесса C++
- 12. C++ Windows - Как получить PID процесса с его пути
- 13. прибудет PID процесса - Linux
- 14. Проверка процесса при открытии gvim
- 15. получить pid процесса в подпроцессе python + bash
- 16. Получить статус процесса pid в Ruby
- 17. Получить PID для процесса, начатого Eclipse
- 18. Как получить PID процесса при использовании XVFB через Pyvirtualdisplay?
- 19. получить _complete_ имя процесса из pid
- 20. получения PID процесса детского
- 21. Bash/ps: получить pid запущенного «myscript.sh» дочернего процесса определенного процесса
- 22. pid текущего процесса
- 23. ms C++ получить pid текущего процесса
- 24. Как получить детали процесса из своего pid
- 25. Получить PID процесса, блокирующего COM-ПОРТ
- 26. Как получить PID родительского процесса моего приложения
- 27. Получить PID процесса Runtime с использованием JNI
- 28. Как получить PID процесса VB3 в Win7?
- 29. Как получить PID фонового процесса в PHP?
- 30. Получить pid последнего запущенного экземпляра определенного процесса
Каталог '/ proc /' (а не папка) заполняется * kernel *. В каждом запущенном процессе есть некоторый подкаталог (и программам не нужно ничего делать, чтобы создать это). Ваш вопрос непонятен. –
Пожалуйста, отредактируйте свой вопрос, чтобы действительно объяснить, что вы хотите сделать, и покажите код, который вы пробовали. Ваш вопрос непонятен. –
Пожалуйста, также объясните контекст и почему вы хотите сделать все это (и на каком языке вы кодируете, также покажите код, который вы пробовали). Возможно, будет более простой способ достижения вашей цели. –