最近、サーバーをUbuntu V14.04からV16.04にアップグレードしましたが、systemctlが機能しなくなったようです。
起動時に送信デーモンが自動的に起動しないようにする必要があるため、コマンドを発行します
sudo systemctl disable transmission-daemon.service
そして、私は次の応答を受け取ります
Synchronizing state of transmission-daemon.service with SysV init with /lib/systemd/systemd-sysv-install...
Executing /lib/systemd/systemd-sysv-install disable transmission-daemon
initctl: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection refused
The script you are attempting to invoke has been converted to an Upstart job, but lsb-header is not supported for Upstart jobs.
insserv: warning: script 'screen-cleanup' missing LSB tags and overrides
insserv: Default-Start undefined, assuming empty start runlevel(s) for script `screen-cleanup'
insserv: Default-Stop undefined, assuming empty stop runlevel(s) for script `screen-cleanup'
insserv: warning: current start runlevel(s) (empty) of script `transmission-daemon' overrides LSB defaults (2 3 4 5).
insserv: warning: current stop runlevel(s) (0 1 2 3 4 5 6) of script `transmission-daemon' overrides LSB defaults (0 1 6).
initctl: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection refused
サービスが無効になることはありません
@JdeBPごとに更新して、画面クリーンアップスクリプトを削除すると、問題が解決しました
$ sudo rm /etc/init.d/screen-cleanup
$ sudo systemctl disable transmission-daemon.service
Synchronizing state of transmission-daemon.service with SysV init with /lib/systemd/systemd-sysv-install...
Executing /lib/systemd/systemd-sysv-install disable transmission-daemon
insserv: warning: current start runlevel(s) (empty) of script `transmission-daemon' overrides LSB defaults (2 3 4 5).
insserv: warning: current stop runlevel(s) (0 1 2 3 4 5 6) of script `transmission-daemon' overrides LSB defaults (0 1 6).
insserv: warning: current start runlevel(s) (empty) of script `transmission-daemon' overrides LSB defaults (2 3 4 5).
insserv: warning: current stop runlevel(s) (0 1 2 3 4 5 6) of script `transmission-daemon' overrides LSB defaults (0 1 6).
必要に応じてサービスが無効になっていることがわかります
systemctl status transmission-daemon
● transmission-daemon.service - Transmission BitTorrent Daemon
Loaded: loaded (/lib/systemd/system/transmission-daemon.service; disabled; ve
Drop-In: /etc/systemd/system/transmission-daemon.service.d
└─local.conf
Active: active (running) since Thu 2018-03-08 08:16:00 EST; 2 days ago
Main PID: 2423 (transmission-da)
Status: "Uploading 329.89 KBps, Downloading 11.04 KBps."
CGroup: /system.slice/transmission-daemon.service
└─2423 /usr/bin/transmission-daemon -f --log-error -g /etc/transmissi
/lib/systemd/systemd-sysv-install
は、systemd-sysv-generator
他のサービス管理システムが認識する非ネイティブの有効化/無効化アクションを実行することを目的としたフックです。Ubuntuは/lib/systemd/systemd-sysv-install
単にUbuntuを呼び出します/usr/sbin/update-rc.d
。それは順番にを呼び出します/sbin/insserv
。これにより、van Smoorenbugrc
スクリプトが含まれていることがわかり、そこ/etc/init.d
からLSBヘッダー情報を取得しようとします。
/sbin/insserv
は、検出したvanSmoorenburgrc
スクリプトが実際にUpstartの/lib/init/upstart-job
プログラムへのシンボリックリンクであると認識する特殊なケースがあります。これは多くのvanSmoorenburgrc
スクリプトを埋める汎用プログラムであるため、特定のサービスに適したLSBヘッダー情報がありません。したがって、実際には、サブコマンドを使用し/sbin/insserv
てrc
スクリプトを呼び出して、サービスの適切なLSBヘッダーを計算して出力するようにします。/lib/init/upstart-job
lsb-header
しかし/lib/init/upstart-job
、実際にはそのサブコマンドをサポートしていません。ソフトウェアが適切に統合されることはありませんでした。/lib/init/upstart-job
実行initctl
実行中の成り上がりサービスマネージャに接続しようとすると、もちろん(1が実行されていないため)失敗し、ソケットに接続することができない程度見ている最初のエラーを印刷し、/com/ubuntu/upstart
し、それはあなたが見ていること、2番目のエラーを出力しますlsb-header
サブコマンドが「Upstartジョブの場合」にサポートされていないことについて(それらが目的であったとしても)。
結果は、それがすべてうまくいかないということです。
それは何年もの間うまくいかなかった。このバグを報告している人を見つけることができます。これはもちろん、insserv
Upstartとvan Smoorenburgの下で直接または間接的に実行されたときに発生しinit
、この時点で10年以上前にさかのぼります。2016年にAskUbuntuで質問されました。2016年のこのようなLaunchpadのバグがいくつかあります。
興味深いことに、これらのLaunchpadのバグの1つである2010年のバグでは、サブコマンドを理解し、少なくとも情報が不足しupstart-job
lsb-header
ている場合でも、insserv
少なくとも何かを処理できるようにパッチを提供しようとしました。ソフトウェアを自分で修正するためのアクセス権を持っていない一部のユーザーを除いて、誰も気づきませんでした。
もちろん、これらのvan Smoorenburgrc
スクリプトはinitctl
、Upstartを直接駆動する方法を理解していないが、古いvan Smoorenburgrc
スクリプトを駆動する方法を知っているソフトウェアや人々のために、Upstartのラッパーです。ただし、Ubuntu16を使用しています。systemdオペレーティングシステム。systemdの下位互換性メカニズムはrc
、それ自体が他の下位互換性メカニズムであるいくつかのvan Smoorenburgスクリプトを取得し、それらをsystemdネイティブユニットにラップし、systemdサービスマネージャーに送信されたコマンドをそこにないUpstartサービスマネージャーに反映しようとします。 。
これはばかげています。
/etc/init.d
指しているシンボリックリンクを見つけます/lib/init/upstart-job
。物の見た目でそれは/etc/init.d/screen-cleanup
です。ケーキの上のアイシングは、Ubuntu 16のtransmission-daemon
ネイティブsystemdサービスユニット(/lib/systemd/system/transmission-daemon.service
)によって制御され、van Smoorenburgのrc
下位互換性メカニズムで/lib/systemd/systemd-sysv-install
あり、そもそも適用されません。
insserv
。Debian7のマニュアルページ。この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加