Created attachment 12382 [details] .service для systemd Предлагаю добавить в пакет файл pdnsd.service для более корректного запуска. В моем случае автоматически порождаемый .service оказывается кривым. Это приводит к ожиданию в несколько минут перед тем, как включится DNS и станет возможным доступ к сайтам. С прилагаемым файлом pdnsd.service в /lib/systemd/system все заработало корректно.
Comment on attachment 12382 [details] .service для systemd >[Unit] >Description=SYSV: a caching dns proxy for small networks or dialin accounts >Documentation=man=pdnsd(8) man:pdnsd-ctl(8) man:pdnsd.conf(5) >SourcePath=/etc/rc.d/init.d/pdnsd >Wants=network.target >After=network.target >Before=graphical.target >Before=multi-user.target > >[Service] >Type=forking > >Restart=on-failure >TimeoutSec=1min >IgnoreSIGPIPE=no >KillMode=process >GuessMainPID=no >RemainAfterExit=no >PIDFile=/var/run/pdnsd.pid >ExecStart=/etc/rc.d/init.d/pdnsd start >ExecStop=/etc/rc.d/init.d/pdnsd stop >ExecReload=/etc/rc.d/init.d/pdnsd reload >OOMScoreAdjust=-1000 > >[Install] >WantedBy=multi-user.target >WantedBy=graphical.target Why do it need mutli-user and graphical targets?
Does it really need mutli-user and graphical targets?
Мне нужно, чтобы DNS-кеш запустился работал уже в момент запуска рабочего стола, а не через 10 минут после (буквально!). Может быть есть способ лучше.
Comment on attachment 12382 [details] .service для systemd >[Unit] >Description=SYSV: a caching dns proxy for small networks or dialin accounts >Documentation=man=pdnsd(8) man:pdnsd-ctl(8) man:pdnsd.conf(5) typo: не man=, а man: >SourcePath=/etc/rc.d/init.d/pdnsd Это метаинформация для юнитов-генератов (в данном случае из инит-скрипта). Упаковывать юнит с этим свойством в пакет неправильно. >Wants=network.target Этот таргет обычно зовут настройщики сети: etcnet, NM, connman, суппликанты для L2-авторизации... Я бы попробовал убрать директиву, но если это чему-то помешает на целевой системе, то можно и оставить. Вячеслав программой пользуется, ему виднее. >After=network.target >Before=graphical.target >Before=multi-user.target > >[Service] >Type=forking Если уж писать и упаковывать юнит, то пусть лучше он будет сам программу pdnsd звать. То есть Type=simple или Type=exec. Повторять double-fork танцы — излишняя сложность. >Restart=on-failure >TimeoutSec=1min >GuessMainPID=no >RemainAfterExit=no >PIDFile=/var/run/pdnsd.pid >ExecStart=/etc/rc.d/init.d/pdnsd start >ExecStop=/etc/rc.d/init.d/pdnsd stop >ExecReload=/etc/rc.d/init.d/pdnsd reload Всё это лишнее, если перевести на Type=simple. >IgnoreSIGPIPE=no >KillMode=process Нужны ли эти директивы? >OOMScoreAdjust=-1000 OOM score -1000 и даже -999 — это маловато IMHO, у journald нынче -250. Нужен некоторый инсайт про другие пакеты. >[Install] >WantedBy=multi-user.target >WantedBy=graphical.target Достаточно только первой строчки, graphical и multi-user когда-то называли соотв. runlevel 5 и runlevel 3.
Created attachment 12900 [details] proposed non-Type=forking unit file Предлагаю вот такой юнит. Оставил закомментированными директивы, про которые неясно, стали ли они не нужны.