私はraspi()でUbuntuベースのサーバーを実行しています6.5.0-1015-raspi #18-Ubuntu
。このシステムでは、knxd
KNXバスを実行し、KNXバスを自分のサーバーに公開してから、Dockerコンテナ内でHome Assitantを実行しました。knxd
そしてdocker
systemctlサービスで構成されています。
knxd
/tmp/eib
コマンドラインパラメータを使用してUNIXドメインソケットを生成するように設定します-u /tmp/eib
。たとえば、systemctl start
システムの起動後にサービスを開始したときに機能します。
ただし、再起動後にそのドメインソケットが作成されないようにする所有/tmp/eib
ディレクトリがあります。その後(当然)起動時にクラッシュが発生します。ディレクトリを手動で削除すると、正しいソケットが作成され、正常に起動します。root:root
knxd
knxd
sudo rm -rf /tmp/eib
systemctl restart knxd
knxd
# after reboot. With this in place, knxd crashes on startup.
$ ll -d /tmp/eib
drwxr-xr-x 2 root root 4096 Apr 27 09:33 /tmp/eib/
# If I manually remove the file...
$ sudo rm -rf /tmp/eib
$ sudo systemctl restart knxd
# ... wait a bit ...
# ... then knxd comes up successfully and creates the correct file+permissions
$ ll -d /tmp/eib
srwxr-xr-x 1 knxd knxd 0 Apr 27 09:39 /tmp/eib=
# now knxd and everything depending on it works fine
ファイルを作成した人をどのようにデバッグできますか?knxd
再起動後に正常に表示されるようにどのように設定しますか?
答え1
knxd
githubリポジトリは次の場所にあります。https://github.com/knxd/knxdソケットが作成される場所について言及しました。
「Debian Jessieまたは他のシステムベースのディストリビューションを使用している場合は、/lib/systemd/system/knxd.socket
knxdリスニングクライアントを開くための「標準」ソケットです。以前の-iまたは-uオプションは必要ありません。
/run/
代わりに、以下を使用することをお勧めします/tmp
。
「knxd用のUnixソケットは存在しないでください。/tmp
デフォルトは現在です。/run/knx
必要に応じて1つ-u /tmp/eib
または別のオプションを追加できますが、クライアントを変更することをお勧めします。」