カップはサービスとして実行されたときにavahi-daemonと通信できません。

カップはサービスとして実行されたときにavahi-daemonと通信できません。

読み取り専用モードでRaspberry Piの設定を完了していますが、カップサービスが問題を引き起こす最後の要素のようです。

cup が /etc に設定を書いている間、私は /etc/cups をオーバーレイシステムとしてマウントすることにしました。

$ mount
...
overlay on /etc/cups type overlay (rw,relatime,lowerdir=/etc/cups_org,upperdir=/etc/cups_rw/upper,workdir=/etc/cups_rw/work)
...

カップサービスが正常に開始され、localhost:631ページにアクセスできますが、/ adminサブページに移動すると「内部サーバーエラー」が発生し、/printerサブページに次のメッセージが表示されます。プリンターのリストを取得できません: 無効なファイル記述子。

サービスの起動中にログに次の情報が表示されます。

E [03/Sep/2016:17:17:13 +0200] Unable to communicate with avahi-daemon: Daemon not running

avahiデーモンがアクティブで実行中のとき

/admin サブページにアクセスすると、ログに以下が表示されます。

D [03/Sep/2016:18:22:39 +0200] [CGI] Started /usr/lib/cups/cgi-bin/admin.cgi (PID 5367)
I [03/Sep/2016:18:22:39 +0200] [Client 13] Started "/usr/lib/cups/cgi-bin/admin.cgi" (pid=5367)
D [03/Sep/2016:18:22:39 +0200] [Client 13] file=14
D [03/Sep/2016:18:22:39 +0200] [Client 13] Waiting for CGI data.
D [03/Sep/2016:18:22:39 +0200] Report: clients=1
D [03/Sep/2016:18:22:39 +0200] Report: jobs=0
D [03/Sep/2016:18:22:39 +0200] Report: jobs-active=0
D [03/Sep/2016:18:22:39 +0200] Report: printers=1
D [03/Sep/2016:18:22:39 +0200] Report: stringpool-string-count=654
D [03/Sep/2016:18:22:39 +0200] Report: stringpool-alloc-bytes=6392
D [03/Sep/2016:18:22:39 +0200] Report: stringpool-total-bytes=11720
D [03/Sep/2016:18:22:39 +0200] cupsd is not idle any more, canceling shutdown.
D [03/Sep/2016:18:22:39 +0200] [CGI] admin.cgi started...
D [03/Sep/2016:18:22:39 +0200] cupsd is not idle any more, canceling shutdown.
E [03/Sep/2016:18:22:39 +0200] [CGI] Unable to connect to cupsd: Bad file descriptor
E [03/Sep/2016:18:22:39 +0200] [CGI] Unable to connect to cupsd: Bad file descriptor
D [03/Sep/2016:18:22:39 +0200] [CGI] cupsServer()="/var/run/cups/cups.sock"
D [03/Sep/2016:18:22:39 +0200] [CGI] ippPort()=631
D [03/Sep/2016:18:22:39 +0200] cupsd is not idle any more, canceling shutdown.
D [03/Sep/2016:18:22:39 +0200] [CGI] cupsEncryption()=0
D [03/Sep/2016:18:22:39 +0200] cupsd is not idle any more, canceling shutdown.
D [03/Sep/2016:18:22:39 +0200] [Client 13] CGI data ready to be sent.
D [03/Sep/2016:18:22:39 +0200] PID 5367 (/usr/lib/cups/cgi-bin/admin.cgi) stopped with status 1.

ただし、サービスを停止してプログラムを手動で実行すると、次のようになります。

/usr/sbin/cupsd -f

問題はまったく発生しません。ログには以下が表示されます。

D [03/Sep/2016:18:25:33 +0200] Avahi server connection now available, registering printers for Bonjour broadcasting.

/admin(および他のすべてのサブページ)にアクセスできます。

D [03/Sep/2016:18:25:36 +0200] [CGI] Started /usr/lib/cups/cgi-bin/admin.cgi (PID 6269)
I [03/Sep/2016:18:25:36 +0200] [Client 17] Started "/usr/lib/cups/cgi-bin/admin.cgi" (pid=6269)
D [03/Sep/2016:18:25:36 +0200] [Client 17] file=18
D [03/Sep/2016:18:25:36 +0200] [Client 17] Waiting for CGI data.
D [03/Sep/2016:18:25:36 +0200] cupsd is not idle any more, canceling shutdown.
D [03/Sep/2016:18:25:36 +0200] [CGI] admin.cgi started...
D [03/Sep/2016:18:25:36 +0200] cupsd is not idle any more, canceling shutdown.
D [03/Sep/2016:18:25:36 +0200] [Client 19] Accepted from localhost (Domain)
D [03/Sep/2016:18:25:36 +0200] [Client 19] Waiting for request.
D [03/Sep/2016:18:25:36 +0200] [CGI] http=0x554e9db8
D [03/Sep/2016:18:25:36 +0200] [CGI] cgiSetVariable: SECTION="admin"
D [03/Sep/2016:18:25:36 +0200] [CGI] cgiSetVariable: REFRESH_PAGE=""
D [03/Sep/2016:18:25:36 +0200] cupsd is not idle any more, canceling shutdown.
D [03/Sep/2016:18:25:36 +0200] [CGI] org.cups.sid cookie is "72b5efbcd72416115613b87b329ce911"
D [03/Sep/2016:18:25:36 +0200] [CGI] No form data, showing main menu...

この動作の原因が何であるか、問題を解決する方法(cups.serviceファイルの構成変更?)、または少なくともこのトラブルシューティングをさらに進める方法についてのヒントはありますか?

ベストアンサー1

同様の問題がありましたが、ファイルを編集するのに役立ちました。/usr/lib/systemd/system/org.cups.cupsd.service

[Unit]
Description=CUPS Scheduler
Documentation=man:cupsd(8)
After=network.target

[Service]
ExecStart=/usr/bin/cupsd -f

[Install]
Also=org.cups.cupsd.socket org.cups.cupsd.path
WantedBy=printer.target

root次のようにサービスを再起動しますsudo

# systemctl daemon-reload
# systemctl restart org.cups.cupsd

おすすめ記事