[Netatalk] netatalk.service: Can’t open PID file〜のエラー

# systemctl status netatalk.service で表示されたこのエラー。

netatalk.service: Can’t open PID file /run/lock/netatalk/netatalk (yet?) after start: No such file or directory

========================================================================

「こびとさんのメモ」というサイト

https://log.kobito3.net/2019/11/systemd.html

より。

メモというか、個人的なブクマです。。。 またエントリーを何度か修正するので、表示されてる編集日が微妙かもyo。
2019年11月22日金曜日
systemdを更新したらエラー
最近いろいろサボっていたけど、久しぶりの「yum update」です。
(centos のバージョンも7.7 になってる気がする)

systemd の更新があったようで、mongodb, nginx が起動しませんでした (涙
エラーです…

■ systemd のエラー表示
# nginx の場合

> Can’t open PID file /var/run/nginx.pid (yet?) after start: Too many levels of symbolic links

# mongodb の場合

> Can’t open PID file /var/run/mongodb/mongod.pid (yet?) after start: Too many levels of symbolic links

■ エラーの関連リンク
– Systemd error: ‘Refusing to accept PID outside of service control group, acquired through unsafe symlink chain’
– service: relax PID file symlink chain checks a bit (#8133)
cgroup 対応でチェックを追加したという事です。

■ 対処
– /usr/lib/systemd/system/mongod.service
– /usr/lib/systemd/system/nginx.service
このファイルを編集して
pid のパスを /var/run から /run に変更。

nginx, mongo を起動
> systemctl daemon-reload
> systemctl reload nginx
> systemctl reload mongod
OK … 無事起動 (うれし涙

一応、nginx, mongo のconf も変更しておく
– /etc/nginx/nginx.conf
– /etc/mongod.conf
pid のパスを変更。/var/run -> /run
(/var/run は /run へのシンボリックリンクなので変更しなくても動きますが、systemdの変更に合わせておきます)

mongodbやnginx のように、centos 以外のレポジトリからインストールしたものがあれば、しばらくは要注意。

Can’t open PID file /var/run/xxxxx.pid (yet?) after start: Too many levels of symbolic links

このエラー表示を頭の片隅に。

(そもそも、cgroup の勉強ができていないので何とも言えませんが、別の対応方法があるような気もする…..)

========================================================================
上記サイトを参考に、

/usr/lib/systemd/system/netatalk.service 内を見てみた。

# This file is part of netatalk 3.1.12.

[Unit]
Description=Netatalk AFP fileserver for Macintosh clients
Documentation=man:afp.conf(5) man:netatalk(8) man:afpd(8) man:cnid_metad(8) man:cnid_dbd(8)
Documentation=http://netatalk.sourceforge.net/
After=syslog.target network.target avahi-daemon.service

[Service]
Type=forking
GuessMainPID=no
ExecStartPre=-/usr/bin/systemd-tmpfiles –create /usr/lib/tmpfiles.d/netatalk.conf
ExecStart=/usr/sbin/netatalk
PIDFile=/run/lock/netatalk/netatalk
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
RestartSec=1

[Install]
WantedBy=multi-user.target
:q:

うーむ。
今、/run/lock/netatalk/netatalk があるか見てみたら、
ちゃんと存在し、
3738
という数字だけが入っていた。。。。

Linux、Netatalk、Samba、NFSを使用したファイルサーバーについて研究・運用しています。

fsをフォローする
参考リンク

コメント