appstreamcli висить із 100% використанням процесора під час оновлення


76

appstreamcliперегріває мій ноутбук, постійно використовуючи 100% ядра. Моє єдине рішення - це вбити його. Ось скріншот із top:

вихід топпоказних appstreamcli зі 100% використанням процесора

Я можу вбити appstreamcliз будь-яким або . Але як тільки я це зробити , процес знову повертається і висить оновлення. Якщо я вбиваю його, я отримую такий вихід:sudo kill pidsudo killall appstreamclisudo apt updateappstreamcli

Reading package lists... Done
E: Problem executing scripts APT::Update::Post-Invoke-Success
'if /usr/bin/test -w /var/cache/app-info -a -e /usr/bin/appstreamcli;
 then appstreamcli refresh > /dev/null;
 fi'
E: Sub-process returned an error code

Що це за процес і чому він використовує стільки процесора?


2
Це помилка. Дивіться це питання: askubuntu.com/questions/774918 / ...
alwaysask

9
68 градусів - це гарна температура, щоб приготувати яйце, але для приготування ноутбука вам знадобляться набагато вищі температури.
Майкл Хемптон

@MichaelHampton Мій ноутбук готується, коли процес німого ядра займає весь час процесора; вона стає легко до 100 градусів Цельсія досить легко. Потім він вимикається.
кіт

@cat Правильно, 100 - це магічне число, де готується ваш ноутбук. Можливо, варто очистити його вентилятор і переробити термопасту на свій процесор.
Майкл Хемптон

@MichaelHampton 100 - це магічне число, на яке процесор говорить: вимикаюсь, інакше я зупиняю і ловлю !!!" . Вентилятор чистий, а термопаста нова, просто стара.
кіт

Відповіді:


78

Це викликано помилкою https://bugs.launchpad.net/ubuntu/+source/appstream/+bug/1579712
Робоче рішення (я просто спробував):

Спочатку вбити appstreamcli, вручну або за допомогою

sudo kill -KILL $(pgrep appstreamcli)

або

sudo pkill -KILL appstreamcli

Тоді:

wget -P /tmp https://launchpad.net/ubuntu/+archive/primary/+files/appstream_0.9.4-1ubuntu1_amd64.deb https://launchpad.net/ubuntu/+archive/primary/+files/libappstream3_0.9.4-1ubuntu1_amd64.deb
sudo dpkg -i /tmp/appstream_0.9.4-1ubuntu1_amd64.deb /tmp/libappstream3_0.9.4-1ubuntu1_amd64.deb

Після цього ви зможете продовжити оновлення apt-get як завжди


12
Точно моя проблема, але що до речі appstreamcli?
Шарль-Антуан Фурнель

17
Будьте уважні, це працює в 64-бітній системі; на 32-біт, ви повинні змінити , amd64щоб i386в посиланнях.
Рмано

1
Зробити після sudo kill {pid}передачі помилку " база даних статусу dpkg заблокована іншим процесом ".
Андреа

Проблема полягає в тому, що appstreamcli запускається як root, так що, щоб обійти блокування бази даних, просто зробіть: sudo killall appstreamcli
wasp

2
Оскільки ця помилка виявляється дуже рідко (відповідно до опису), виправлення має бути перевірено за допомогою тестового випадку. Запуск sudo appstreamcli refresh --forceбез підвішування підтвердить, що виправлення працює. Це працювало для мене. Дякую за рішення!
nolexa

2

Крім того, з будь-якої причини, якщо ви не хочете встановлювати пакет із репо-пакетом і просто чекати оновлення, ви можете його повністю видалити.

Це видалить функцію Discover on KDE: Plasma, тому я припускаю, що вона також видалить програмне забезпечення Gnome, або те, що коли-небудь додає ваш Ubuntu Flavor. Якщо це так, ви можете просто використовувати Muon на Kubuntu або Synaptic на базі DEK на базі GTK.

Перш ніж запустити це, переконайтесь, що ви перевіряєте видалення пакунків, щоб переконатися, що з вами все нормально.

Ви можете зрозуміти, що таке, бігаючи

apt show appstream

для видалення запуску програми

sudo apt remove appstream
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.