| Summary: | rasdaemon.env: No such file or directory | ||
|---|---|---|---|
| Product: | Sisyphus | Reporter: | Sergey Y. Afonin <asy> |
| Component: | rasdaemon | Assignee: | Sergey Y. Afonin <asy> |
| Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
| Severity: | normal | ||
| Priority: | P5 | CC: | asy, vt |
| Version: | unstable | ||
| Hardware: | x86_64 | ||
| OS: | Linux | ||
|
Description
Sergey Y. Afonin
2025-03-14 12:46:40 MSK
Это неправильное решение:
- ENV=
- for LINE in `grep -v "^#\|^$" /etc/sysconfig/rasdaemon.env`; do
- ENV="${ENV}${LINE} "
- done
- export $ENV
Правильное
- for LINE in `grep -v "^#\|^$" /etc/sysconfig/rasdaemon.env`; do
+ for LINE in `grep -v "^#\|^$" /etc/sysconfig/rasdaemon`; do
И не "Remove grep error message for sysvinit start", а "Fixed sysvinit script for start": сейчас вообще сломано. Спасибо за багрепорт и рецензирование исправления. - ENV=
- for LINE in `grep -v "^#\|^$" /etc/sysconfig/rasdaemon.env`; do
- ENV="${ENV}${LINE} "
+ for LINE in `grep -sv "^#\|^$" /etc/sysconfig/rasdaemon`; do
+ export "${LINE}"
done
- export $ENV
В принципе да, но получается количество вызовов export по количеству параметров вместо одного. Вряд ли там превышение длины строки когда-то будет. Ну или можно добавить проверку на длину и этот построчный вариант каак fallback.
Надо провести тесты на сколько процентов ускорится реализация с учетом проверок и склеиваний через ENV="${ENV}${LINE} ". Плюс надо добавить проверку если $ENV пусто, то не делать вызов export иначе будет вывод всех переменных окружения в лог.
А чем не нравится собрать в строку и в одну команду? Только риском превышения лимита в bash? (In reply to Vitaly Chikunov from comment #5) Ну как там? Пакет-то поломан для sysvinit. > Надо провести тесты на сколько процентов ускорится реализация с учетом > проверок и склеиваний через ENV="${ENV}${LINE} ". А смысл? > Плюс надо добавить проверку если $ENV пусто, Не надо: 1) когда в строку, это не имеет значения; 2) grep -v "^$" не даст пустрой строки, если нет строки с пробелами, но можно "^$" поменять на "^[[:space:]]*$" А ещё строки с пробелами в цикле for в LINE не попадают, что-то я сразу и не подумал. То есть достаточно grep -v "^#". rasdaemon-0.8.3-alt2 -> sisyphus: Sat Apr 26 2025 Vitaly Chikunov <vt@altlinux> 0.8.3-alt2 - Fixed reading configuration for sysvinit script start action (ALT#53451). - Fixed startup crash due to overflow (pull/212). (In reply to Sergey Y. Afonin from comment #1) > Это неправильное решение: > > - ENV= > - for LINE in `grep -v "^#\|^$" /etc/sysconfig/rasdaemon.env`; do > - ENV="${ENV}${LINE} " > - done > - export $ENV > > Правильное > > - for LINE in `grep -v "^#\|^$" /etc/sysconfig/rasdaemon.env`; do > + for LINE in `grep -v "^#\|^$" /etc/sysconfig/rasdaemon`; do Было ведь простое решение... # service rasdaemon restart Stopping rasdaemon service: [ DONE ] grep: /etc/sysconfig/rasdaemon.env: No such file or directory export ENV="" export HOME="/root" export HOSTNAME="gw-m15a.kraft-s.net" (In reply to Sergey Y. Afonin from comment #9) > export HOSTNAME= Аж даже вот hostname не зачистил... Сорри, что ошибся удаляя свои правки. [U+1F937] rasdaemon-0.8.3-alt3 -> sisyphus: Tue May 06 2025 Sergey Y. Afonin <asy@altlinux> 0.8.3-alt3 - Again fixed reading configuration for sysvinit script start action (ALT#53451) - More accurate check for mounted debugfs in sysvinit script (In reply to Vitaly Chikunov from comment #11) > Сорри, что ошибся удаляя свои правки. [U+1F937] Так-то бывает, но ведь именно этот баг и фиксился... |