追加読書

追加読書

最近サーバーを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

ベストアンサー1

/lib/systemd/systemd-sysv-installsystemd-sysv-generator他のサービス管理システムが認識できる非基本のアクティブ化/非アクティブ化タスクを実行するタスクを実行するフック。 Ubuntuは/lib/systemd/systemd-sysv-install単にUbuntuと呼ばれます/usr/sbin/update-rc.d/sbin/insservそれからvan Smoorenbugrcスクリプトがあることを発見し/etc/init.d、ここからLSBヘッダー情報を取得しようとします。

/sbin/insservrc見つかったvan Smoorenburgスクリプトが実際にUpstartプログラムへのシンボリックリンクであることを認識する特別な場合があります/lib/init/upstart-job。これは多くの van Smoorenburg スクリプトで満たされた汎用プログラムであるため、rc特定のサービスに適した LSB ヘッダー情報はありません。したがって、サービスの正しいLSBヘッダーを計算して印刷できるように、サブ/sbin/insservコマンドを使用してrcスクリプトを呼び出してみてください。/lib/init/upstart-joblsb-header

ただし、/lib/init/upstart-jobこのサブコマンドは実際にはサポートされていません。ソフトウェアが正しく統合されていません。 /lib/init/upstart-jobrunning initctl、実行中のUpstartサービスマネージャに接続しようとします。もちろん失敗します(そのうちの1つが実行されていないため)。そして、ソケットに接続できないという最初のエラーを印刷してから、/com/ubuntu/upstart2番目のエラーを印刷します。 「スタートアップジョブ」サブコマンドがサポートされていないというエラーがありますlsb-header(たとえそれはまさにそれです。)。

結果はすべてが間違っているということです。

長年にわたって問題が発生しました。このバグを報告する人を見つけることができます。もちろん、これはinsservUpstartとvan Smoorenburgの下で直接的または間接的に運営されている人たちinitに10年以上発生しました。この質問は2016年にAskUbuntuで提起されました。 次のようないくつかのLaunchpadエラーがあります。これは2016年からだ。

興味深いことに、Launchpadのバグの1つ(2010年のバグの1つ)では誰かがサブコマンドをupstart-job理解するためにパッチを提供しようとしました。lsb-headerそしてinsserv少なくとも与える情報がかなり薄い場合でも、一緒に作業してください。ソフトウェアを自分で修正できない一部のユーザーを除いて、誰もこの事実に気づいていませんでした。

もちろん、これらのvan SmoorenburgrcスクリプトはUpstartを直接駆動する方法はわかりませんが、initctl以前のvan Smoorenburgスクリプトを駆動する方法を知っているソフトウェアと人々を容易にするためのUpstartの周りのラッパーですrc。しかし、Ubuntu 16オペレーティングシステムを使用しています。 systemd の以前のバージョンとの互換性メカニズムは、いくつかの van Smoorenburgrcスクリプトを使用します。彼ら自身はいその他以前のバージョンとの互換性メカニズムを使用してこれをsystemdのデフォルト単位でラップし、最終的にsystemdサービスマネージャに送信されたコマンドを存在しないUpstartサービスマネージャに反映したいと思います。

これは言えません。

  1. /etc/init.dを指すシンボリックリンクを見つけます/lib/init/upstart-job。状況を見ると本当にそうです/etc/init.d/screen-cleanup
  2. それを削除します。

最も重要なのは、Ubuntu 16の基本システムサービスデバイス()によって制御され、van Smoorenburg以前のバージョンとの互換性メカニズムがtransmission-daemon最初から機能しないことです。/lib/systemd/system/transmission-daemon.servicerc/lib/systemd/systemd-sysv-install

追加読書

おすすめ記事