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

Смешной баг в pgrep

 ,


0

2

Ковырялся с инит-скриптами, писал свой скрипт для работы с сервисом, у которого было длинное название. Обнаружил вот что:

$ cp /bin/sh /bin/shhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
$ shhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
$ pgrep hhhhhhhhhhhhhhhh
$ pgrep hhhhhhhhhhhhhhh
$ pgrep hhhhhhhhhhhhhh
3929

То есть у pgrep'а есть ограничение на длину регекспа.

обнаружил в Сentos 6, подтвердилось на ScientificLinux 6 и Debian 8.

★★★

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

NOTES The process name used for matching is limited to the 15 characters present in the output of /proc/pid/stat. Use the -f option to match against the complete command line, /proc/pid/cmd‐ line.

The running pgrep or pkill process will never report itself as a match.

Хотя бы ман прочитал перед тем, как баги искать.

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

Хм...

$ pgrep -f shhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
27755

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

ок.. значит, потом передумали и поменяли. Солвед .)

pianolender ★★★
() автор топика
Ответ на: комментарий от x3al

Всё равно поведение неправильное. Пусть хотя бы с нормальной ошибкой падает, а не притворяется что ничего не нашло.

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

согласен, должно выводить сообщение о неправильном регэкспе. Предлагаю ТС, или другим заинтересованным, этим заняться

cvs-255 ★★★★★
()
Последнее исправление: cvs-255 (всего исправлений: 2)
Ответ на: комментарий от cvs-255

Не нарушит ли это обратную совместимость? Всё-таки sh, кто-нибудь мог написать скрипт, неявно предполагающий, что pgrep молчит в stderr и имеет нужный код возврата.

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

сделать ln pgrep pgrep2, и проверять имя запускаемого бинарника

Ну и наверняка у авторов есть рассылка или багтрекер, там написать, узнать положение дел

cvs-255 ★★★★★
()
Последнее исправление: cvs-255 (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.