Bug 8014 - Ошибка в функции checkpid?!
: Ошибка в функции checkpid?!
Status: CLOSED NOTABUG
: Sisyphus
(All bugs in Sisyphus/service)
: unstable
: all Linux
: P2 minor
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2005-09-19 21:04 by
Modified: 2007-03-25 16:19 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2005-09-19 21:04:10
в функции checkpid (/etc/init.d/functions-compat) помоему имеется "логическая 
ошибка"...  
checkpid() 
{ 
    while [ -n "$1" ]; do 
        [ -d "/proc/$1" ] && shift || return 1 
    done 
    return 0 
} 

Как я понимал 0 возвращается если pid (или список pid-ов) найден. 

Если передать пустой $1, то тоже вернётся 0. Что вроде как неверно. 
Если я прав, то можно добавить вначале строку: [ -z "$1" ] && return 1
------- Comment #1 From 2005-09-22 19:41:58 -------
Я полагаю, что такое поведение функции checkpid (если ей не передано
аргументов,
то возвращать 0) было заложено сознательно теми, кто эту функцию придумал.

Я бы не хотел менять поведение функций в файле /etc/init.d/functions-compat,
поскольку их основной задачей является обеспечение обратной совместимости со
скриптами, написанными в стиле RH.
------- Comment #2 From 2007-03-24 01:50:17 -------
Поскольку других соображений не поступило, закрываю.
------- Comment #3 From 2007-03-25 16:19:52 -------
Ну пожалуй соглашусь. Тем более, что проверка с пустым 
аргументом вряд-ли часто используется :)