в функции 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
Я полагаю, что такое поведение функции checkpid (если ей не передано аргументов, то возвращать 0) было заложено сознательно теми, кто эту функцию придумал. Я бы не хотел менять поведение функций в файле /etc/init.d/functions-compat, поскольку их основной задачей является обеспечение обратной совместимости со скриптами, написанными в стиле RH.
Поскольку других соображений не поступило, закрываю.
Ну пожалуй соглашусь. Тем более, что проверка с пустым аргументом вряд-ли часто используется :)