packagekitのメモリ使用率が高いので停止する

centos_logo Linux
centos_logo

packagekitとは?

packageKit は、Linux ディストリビューションで ソフトウェアのインストール・更新を自動的に管理するためのバックグラウンドサービスです。
主に GUI 環境(GNOME など)での自動アップデートやソフトウェア管理ツールと連携して動作します。

また、X Window SystemのGUI環境を利用していなくても、Cockpit のWEB管理画面を利用している場合は、裏で packagekit を利用してパッケージの一覧取得や更新操作を行っていますので、この機能も利用できないくなります

packagekitを停止する

GUI環境やCockpit を利用しない場合は、packageKit を停止しても問題場合は下記の手順で停止します。

  1. 現在動作中のpackagekitを停止
    $ sudo systemctl stop packagekit
  2. 自動起動無効化して、再起動後も起動しないようにする
    $ sudo systemctl disable packagekit
  3. サービスの現在の状態を確認
    $ sudo systemctl status packagekit
  4. サービスが有効かどうか確認
    $ sudo systemctl is-enabled packagekit

packagekit の自動起動が停止できない場合

自動起動を停止する場合に以下のようなエラーが発生する場合は自動起動は停止していません

systemctl is-enabled packagekit で「static」と表示されるのは、そのサービスが直接有効化 (enable) または無効化 (disable) できない状態となっています

packagekit.service が static になっているのは、GNOME SoftwareやKDE Discoverといったデスクトップ環境のソフトウェアセンターに依存しており、それらのアプリケーションが必要に応じて PackageKit を自動的に起動するためです。

$ sudo systemctl disable packagekit

The unit files have no installation config (WantedBy=, RequiredBy=, Also=,
Alias= settings in the [Install] section, and DefaultInstance= for template
units). This means they are not meant to be enabled or disabled using systemctl.
 
Possible reasons for having this kind of units are:
• A unit may be statically enabled by being symlinked from another unit's
  .wants/ or .requires/ directory.
• A unit's purpose may be to act as a helper for some other unit which has
  a requirement dependency on it.
• A unit may be started when needed via activation (socket, path, timer,
  D-Bus, udev, scripted systemctl call, ...).
• In case of template units, the unit is meant to be enabled with some
  instance name specified.

$ systemctl is-enabled packagekit
static

このサービス(packagekit.service)にマスクをして、他のプロセスによって起動されることを完全に防ぎます。
マスクを設定すると、systemctl start や他のサービスからの起動要求があっても、packagekit.service は起動しなくなります。

# packagekitを停止する
$ sudo systemctl stop packagekit

# mask を使う(完全に無効化)
$ sudo systemctl mask packagekit

packagekitを停止・自動起動を戻す方法

packagekit の自動起動をmaskやdisableで停止した2つのケースで、それぞれ 元の状態(自動起動が有効でサービスが起動している状態)に戻す手順 をまとめます。

disable を使って自動起動を止めた場合

# packagekitを起動
$ sudo systemctl stop packagekit

# 自動起動を有効化
$ sudo systemctl enable packagekit

mask を使って完全に無効化した場合

# マスク(起動禁止)を解除
$ sudo systemctl unmask packagekit

# 自動起動を有効化
$ sudo systemctl enable packagekit

# サービスを即時起動
$ sudo systemctl start packagekit

状態確認コマンド(共通)

以下のコマンドで、packagekit が正しく動作しているか確認できます

# サービスの稼働状態
systemctl status packagekit

# 自動起動の有効状態(enabled ならOK)
systemctl is-enabled packagekit
スポンサーリンク
スポンサーリンク
スポンサーリンク
スポンサーリンク
Linux
スポンサーリンク
adminをフォローする

コメント

タイトルとURLをコピーしました