Как получить pid процесса, который работает быстро

Я использую систему CentOS 6.

Я хотел бы знать pid команды curl, которую я выполняю. Обычно для получения pid процесса я использую ps или pidof или pgrep или аналогичные. Но я обычно использую их для длительных процессов ... часто для обработки, которая на самом деле выполняется слишком долго, и я хочу их убить.

Это другая ситуация. В моем контексте curl выполняется очень быстро, потому что запросов и ответов мало. Но мне все еще нужно знать pid этого процесса. Есть ли способ выполнить быстро выполняющуюся команду, чтобы она сообщала вам, с каким pid она выполнялась? Или есть способ ретроспективно определить, какой был pid вашей предыдущей команды?

0
задан 27 September 2019 в 23:28
2 ответа

curl имеет собственную опцию --max-time , которая может установить верхнюю границу продолжительности. - максимальное время 60 ограничивается одной минутой.


ps , чтобы найти PID фонового задания, ненадежно. Вы уже нашли условия гонки.

Если вам нужно управлять процессом каким-либо другим способом, curl на самом деле не сообщает PID. Однако любой достойный язык сценариев, такой как Python или Perl, имеет способы форкнуть подпроцесс и установить тайм-аут. Реализация не предоставлена, но недавний поток на curl-users Re: Поиск PID процесса curl предполагает, что это больше ответственность вызывающего сценария, чем самого curl.

2
ответ дан 4 December 2019 в 12:14

Как правило, ваша оболочка записывает PID команды, что является обычным методом, который можно использовать, когда сама команда не предоставляет собственный способ регистрации PID (основного) процесса, и вы можете использовать что-то вроде:

 curl $options & 
 curl_pid=$!
1
ответ дан 4 December 2019 в 12:14

Теги

Похожие вопросы