
Ubuntu日本語フォーラム
ログインしていません。
UbuntuでキャノンのCAPTプリンター(LBP9100C)を使用しています。CAPTプリンターで印刷するにはバックグラウンドでCCPDデーモンを動かしている必要があります。Ubuntu14.04では普通に動いていたのですが、Ubuntu16.04でCCPDを動かそうと、キャノンの説明書のとおり、/etc/rc.localにCCPDをスタートするコマンド(/etc/init.d/ccpd start)を書きました。するとCCPDは自動起動したのですが、シャットダウンするときCCPDが自動停止しなくなくなり、無限時間がかかるという目にあいました。Ubuntu16.04はsystemdを使って起動するOSです。キャノンの説明はsystemdまで想定していないようです。ネットでSystemdの解説を調べて、あれこれ触っているうちに、うまく行ったので、報告します。
(1)/usr/sbinにCCPDが入っているので、/lib/systemd/system/に次のような内容の、ccpd.serviceというファイルを作る。
[Unit]
Description=Canon CAPT daemon
Requires=cups.service
After=printer.target
[Service]
Type=forking
ExecStart=/usr/sbin/ccpd
[Install]
WantedBy=multi-user.target
(2)そのあと端末で#systemctl daemon-reloadと、#systemctl enable ccpdを打つ。これで/etc/systemd/system/multi-user.target.wantsに上記ccpd.serviceのリンクができる。(3)/etc/init.d/にあるスクリプトccpdは不要なようなので、リネームして退避させておく。これで再起動。 以上です。
オフライン
追加ですが、Systemdで、従来の/etc/rc.localはどう扱われるか? ですが、/lib/systemd/system/にrc-local.serviceというserviceの設定ファイルがあって、その中にExecStart=/etc/rc.local startという行が書いてありますので、これを使って/etc/rc.localを起動するのでしょう。この/etc/rc.localの中に、従来のキャノンの説明にしたがって書き込んだ”/etc/init.d/ccpd start”という命令行を残しておくと、ここからの起動と、あとで作ったccpd.serviceからの起動が衝突するといけないので、/etc/rc.localに書き込んだ命令は消しておいたほうがよいでしょう。/etc/init.d/ccpdファイルも不要でしょう。
オフライン
一点だけ指摘させてください。
haruem による投稿:
(1)/usr/sbinにCCPDが入っているので、/lib/systemd/system/に次のような内容の、ccpd.serviceというファイルを作る。
「/lib/systemd/system/」についてですが、systemd.unitのmanpageをみると「/lib/systemd/system/」ディレクトリー配下はベンダーが用意する領域っぽく書かれていますので、システムの管理者は「/etc/systemd/system/」配下に作るようにすると、より良くなります。
※ 既にそのunitをenableしてしまっている場合は、念の為、disableしてからファイルを移動させてください。移動/設置後は「 sudo systemctl daemon-reload 」「 sudo systemctl enable ccpd.service 」をお忘れなく。
オフライン