После падения сервера служба squidmill не поднялась: *** Log started Process detached (11794) PID-file: /var/run/squidmill/squidmill.pid Open server socket: /var/run/squidmill/squidmill.sock Delete the PID-file: /var/run/squidmill/squidmill.pid Socket error (98): Address already in use 0 main 1 ##execute-program *** Log finished Помогло только удаление файла /var/run/squidmill/squidmill.sock
А это точно ошибка? Кажется, при экстренном падении, нельзя гарантировать удаление файла. Обычно выводится сообщение, что, мол, проверьте всё и удалите lock-файл или socket для нормального запуска службы.
(В ответ на комментарий №1) > А это точно ошибка? Кажется, при экстренном падении, нельзя гарантировать > удаление файла. Обычно выводится сообщение, что, мол, проверьте всё и удалите > lock-файл или socket для нормального запуска службы. Прошлый раз также бились с pid-файлом. Что мешает с сокетом поступить также (принудительно удалять, как pid-файл в логе)?
В логе выше удаляется *новый* PID-файл, который создаётся в рамках попытки запуска службы двумя строками выше. Видимо, служба падает таким образом, что старый PID-файл успевает удалиться, а сокет — нет. Соответственно, squidmill думает, что кто-то запустил другой экземпляр из командной строки (в foreground, поэтому без PID), и не стартует. Я бы предложил разобраться не с тем, что нужно чистить "ошмётки" от падения службы вручную — это нормальная ситуация —, а с тем, почему squidmill вообще падает, если это происходит регулярно.
Снапшот виртуалки сделал, так что всегда можно вернутся. Но всё же а) лучше возвращать код ошибки, чтобы service не показывал, что служба запущена б) лучше критические ошиьбки выводить сразу в stderr, тогда понятно почему служба не стартует (как в httpd2 и dhcpd) в) ещё лучше при старте явно чистить все сокеты и pid во избежание.
а) и б) согласен: нужно проверять всё это до форка.
squidmill-2.7.0-alt2 -> sisyphus: Sat Aug 30 2025 Paul Wolneykien <manowar@altlinux> 2.7.0-alt2 - Build without RPATH. Thu Aug 28 2025 Paul Wolneykien <manowar@altlinux> 2.7.0-alt1 - Added a special test with no debug messages in daemon log (closes: 30142). - Make SysV-init script to remove the socket file on stop (closes: 29894). - Also, add support to print the test main log on success (PRINT_LOG_OK). - Repeat all tests 10 times when building. - Fixed/improved C-interface functions with Gambit 4.9.7. - Allow to select tests (RUN_TESTS) and to repeat them (TEST_COUNT). - Reworked tests + more tests. - Reworked top-level exception handling. - Rewrote the file-follow machinery (in the hope it's more stable now). Fri Aug 22 2025 Paul Wolneykien <manowar@altlinux> 2.6.4-alt1 - Version 2.6.4. - Replace SRFI-1 named getters with list-ref to avoid call to undefined symbols with some versions of Gambit (Fixes: OVE-20250822-0001). - Run gsc with -warnings and check for undefined symbols. - Fixed the extra log title in test output. - Try to improve backtrace on error. Thu Aug 21 2025 Paul Wolneykien <manowar@altlinux> 2.6.3-alt1 - Output SQL statements to the log with debug level > 1 only (-D -D). - Print test logs on test fail (PRINT_LOG=1). - Improved tests. Tue Aug 19 2025 Paul Wolneykien <manowar@altlinux> 2.6.2-alt2 - Make [/var]/run/squidmill a ghost dir. Tue Aug 19 2025 Paul Wolneykien <manowar@altlinux> 2.6.2-alt1 - Use squidmill.service unit to configure some fragile options (closes: 50276, 55654, 29894).