| Summary: | Ошибка в функции checkpid?! | ||
|---|---|---|---|
| Product: | Sisyphus | Reporter: | Pavel Vainerman <pv> |
| Component: | service | Assignee: | placeholder <placeholder> |
| Status: | CLOSED NOTABUG | QA Contact: | qa-sisyphus |
| Severity: | minor | ||
| Priority: | P2 | CC: | glebfm, ldv, legion, placeholder, vt |
| Version: | unstable | ||
| Hardware: | all | ||
| OS: | Linux | ||
Я полагаю, что такое поведение функции checkpid (если ей не передано аргументов, то возвращать 0) было заложено сознательно теми, кто эту функцию придумал. Я бы не хотел менять поведение функций в файле /etc/init.d/functions-compat, поскольку их основной задачей является обеспечение обратной совместимости со скриптами, написанными в стиле RH. Поскольку других соображений не поступило, закрываю. Ну пожалуй соглашусь. Тем более, что проверка с пустым аргументом вряд-ли часто используется :) |
в функции 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