LINUX.ORG.RU
ФорумAdmin

Opendkim - Can't open PID file - перезагрузка (Ubuntu)

 ,


1

1

Есть проблема с запуском Opendkim.

А именно, после команды

sudo systemctl restart opendkim

Далее

sudo systemctl status opendkim

opendkim.service: Can't open PID file /run/opendkim/opendkim.pid (yet?) after start: Operation not permitted

То есть после рестарта сервиса появляется такая вот ошибка.

А если сделать полный ребут системы

reboot

Тогда всё подгружается нормально.

Как решить это проблему ?

Допустим нужно править что-то, не делать же всё время ребут системы.

Ответ на: комментарий от nixbrain

Можно или попробовать заменить путь в указанном файле на верный (/var/run/ -> /run/), или, если там действительно systemd мудрит, попробовать воспользоваться советом из соседней темы за 2020 год:

На данный момент проблему решил созданием файла /etc/systemd/system/opendkim.service.d/postexec-sleep.conf следующего содержания:

[Service]
ExecStartPost=/usr/bin/sleep 1
anonymous
()
Ответ на: комментарий от anonymous
  1. Пробовал /run/ (ошибка висит все равно)

  2. Пробовал убирать с конфига загрузку файла, тогда он его не может перегрузить командой systemctl restart opendkim

Вопрос что это означаете или делает ?

[Service]
ExecStartPost=/usr/bin/sleep 1
nixbrain
() автор топика
Ответ на: комментарий от jura12

Возможно что-то мешает загрузке, потому что если ребутнуть полностью систему, всё подгружается нормально.

nixbrain
() автор топика
Последнее исправление: nixbrain (всего исправлений: 1)
Ответ на: комментарий от nixbrain

Я ответил на ваш конкретный вопрос, вроде даже цитату привёл… Вы не заметили?
Или вы рандомно отвечаете, типа «читаю один пост, отвечаю на какой под руку подвернётся, а они пусть сами догадаются что я имел ввиду»?

anc ★★★★★
()
Последнее исправление: anc (всего исправлений: 1)
Ответ на: комментарий от anc

Сделал, после создания файла, нужно будет потом сделать

systemctl daemon-reload
sudo systemctl restart opendkim
sudo systemctl status opendkim

На всякий случай, потом сделать полный ребут чтобы посмотреть будет ли в том случае подгружаться. В моём случае все ок.

Теперь в статусе видно

Process: 656 ExecStartPost=/usr/bin/sleep 1 (code=exited, status=0/SUCCESS)

Я так понимаю «висит» 1 секунду, для того чтобы не конфликтовать при загрузке процесса с другими ?

nixbrain
() автор топика
Ответ на: комментарий от nixbrain

Я так понимаю «висит» 1 секунду, для того чтобы не конфликтовать при загрузке процесса с другими ?

Судя по этой теме - почти.

О, спасибо! Заработало! Он просто создавал pid файл после того, как сервис будет искать его.
anonymous
()