Bug 8014

Summary: Ошибка в функции checkpid?!
Product: [Development] Sisyphus Reporter: Pavel Vainerman <pv@altlinux.org>
Component: serviceAssignee: Dmitry V. Levin <ldv@altlinux.org>
Status: CLOSED NOTABUG QA Contact: qa-sisyphus@altlinux.org
Severity: minor    
Priority: P2 CC: inger@altlinux.org
Version: unstable   
Hardware: all   
OS: Linux   

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 -------
Ну пожалуй соглашусь. Тем более, что проверка с пустым 
аргументом вряд-ли часто используется :)