Как остановить все процессы пакета snap (например, Android-Studio)

Это странный вопрос. Обратите внимание, что это не вопрос android-studio , а вопрос snap . Только android-studio является одним из виновников неправильного поведения, и его следует ограничить с помощью оснастки .

android-studio была установлена ​​с помощью snap . Но иногда процессы все равно зависают в фоновом режиме и потребляют много ресурсов процессора (а значит, и батареи) после закрытия android-studio . Затем мне нужно убить их вручную, используя идентификатор процесса с переключателем -9 .

Действительно ли это намеченный путь? С помощью snap ?

я попытался найти любой указатель в Интернете, но совершенно не смог сделать это с помощью snap . Либо команды вообще не существуют, либо ничего не помогло, либо было совершенно неверно. Также документация по оснасткам, кажется, очень хорошо скрывает бит, который я ищу (или он отсутствует?).

Обратите внимание, что все обычные вещи вообще не проблема:

Но я все еще озадачен , как я должен правильно управлять приложением в пакете snap :

Ну это оснастка , так что все аккуратно упаковано, да? И, безусловно, есть какой-нибудь простой способ полностью остановить все в таком контейнере оснастки, не так ли?

Например, с lxc-stop container все в контейнере разрывается. Легкий. Но с оснасткой ничего подобного не нашел.

Вот то, что я пробовал, и было частично предложено другими страницами:

$ snap status
error: unknown command "status", see 'snap help'.
$ snap stop android-studio
error: access denied (try with sudo)

Он был запущен как пользователь, поэтому тот же пользователь должен иметь возможность остановить его снова. sudo , безусловно, здесь доступен, но давайте попробуем повторить с sudo :

$ sudo snap stop android-studio
error: snap "android-studio" has no services
$ killall android-studio
android-studio: no process found

Но с ps и top или htop есть процессы (частично java , конечно):

$ ps auxwww | grep android
tino       14352  0.0  0.0   2616  1732 ?        S    12:48   0:00 /bin/sh /snap/android-studio/101/android-studio/bin/studio.sh
tino       14428  4.7 10.6 5042148 420488 ?      Sl   12:48   2:19 /snap/android-studio/101/android-studio/jre/bin/java -classpath /snap/android-studio/101/android-studio/lib/bootstrap.jar:/snap/android-studio/101/android-studio/lib/extensions.jar:/snap/android-studio/101/android-studio/lib/util.jar:/snap/android-studio/101/android-studio/lib/jdom.jar:/snap/android-studio/101/android-studio/lib/log4j.jar:/snap/android-studio/101/android-studio/lib/trove4j.jar:/snap/android-studio/101/android-studio/lib/jna.jar:/snap/android-studio/101/android-studio/jre/lib/tools.jar -Xms256m -Xmx1280m -XX:ReservedCodeCacheSize=240m -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -XX:CICompilerCount=2 -Dsun.io.useCanonPrefixCache=false -Djdk.http.auth.tunneling.disabledSchemes="" -Djdk.attach.allowAttachSelf=true -Dkotlinx.coroutines.debug=off -Djdk.module.illegalAccess.silent=true -Djna.nosys=true -Djna.boot.library.path= -Didea.vendor.name=Google -Dawt.useSystemAAFontSettings=lcd -Dsun.java2d.renderer=sun.java2d.marlin.MarlinRenderingEngine -Dsun.tools.attach.tmp.only=true -XX:ErrorFile=/home/tino/java_error_in_STUDIO_%p.log -XX:HeapDumpPath=/home/tino/java_error_in_STUDIO.hprof -Didea.paths.selector=AndroidStudio4.1 -Djb.vmOptionsFile=/snap/android-studio/101/android-studio/bin/studio64.vmoptions -Didea.platform.prefix=AndroidStudio -Didea.jre.check=true com.intellij.idea.Main
tino       45016  0.0  0.0  11128  2452 pts/12   S+   13:37   0:00 grep --color=auto android
$ kill 14352
$ kill 14352
-bash: kill: (14352) - No such process
$ kill 14428
$ kill 14428
$ ps auxwww | grep android
tino       14428  4.7 10.6 5042148 420488 ?      Sl   12:48   2:19 /snap/android-studio/101/android-studio/jre/bin/java -classpath /snap/android-studio/101/android-studio/lib/bootstrap.jar:/snap/android-studio/101/android-studio/lib/extensions.jar:/snap/android-studio/101/android-studio/lib/util.jar:/snap/android-studio/101/android-studio/lib/jdom.jar:/snap/android-studio/101/android-studio/lib/log4j.jar:/snap/android-studio/101/android-studio/lib/trove4j.jar:/snap/android-studio/101/android-studio/lib/jna.jar:/snap/android-studio/101/android-studio/jre/lib/tools.jar -Xms256m -Xmx1280m -XX:ReservedCodeCacheSize=240m -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -XX:CICompilerCount=2 -Dsun.io.useCanonPrefixCache=false -Djdk.http.auth.tunneling.disabledSchemes="" -Djdk.attach.allowAttachSelf=true -Dkotlinx.coroutines.debug=off -Djdk.module.illegalAccess.silent=true -Djna.nosys=true -Djna.boot.library.path= -Didea.vendor.name=Google -Dawt.useSystemAAFontSettings=lcd -Dsun.java2d.renderer=sun.java2d.marlin.MarlinRenderingEngine -Dsun.tools.attach.tmp.only=true -XX:ErrorFile=/home/tino/java_error_in_STUDIO_%p.log -XX:HeapDumpPath=/home/tino/java_error_in_STUDIO.hprof -Didea.paths.selector=AndroidStudio4.1 -Djb.vmOptionsFile=/snap/android-studio/101/android-studio/bin/studio64.vmoptions -Didea.platform.prefix=AndroidStudio -Didea.jre.check=true com.intellij.idea.Main
tino       45020  0.0  0.0  11128  2544 pts/12   S+   13:37   0:00 grep --color=auto android
$ kill -9 14428
$ kill -9 14428
-bash: kill: (14428) - No such process

По-видимому, некоторые из них стойкие, и их нужно убить -9 !

Примечания:

  • Я не хочу использовать killall java , потому что это повлияет на другие приложения java .
  • Конечно, я мог бы создать какой-нибудь скрипт, который просматривает / proc , чтобы отсортировать процессы, принадлежащие snap , и работать с ним.
  • Но я ищу команду, которая включает snap вместо того, чтобы заново изобретать колесо с помощью некоторой независимой внешней команды, основанной на внутренних компонентах snap .
  • Я спрашиваю об этом на AskUbuntu, потому что я использую только snap в Ubuntu
1
задан 4 April 2021 в 12:07

1 ответ

Snap - это система для распространения и установки приложений. Процессы, порожденные программой, установленной как оснастка, не отличаются от процессов любого другого программного обеспечения, запущенного в системе, и, следовательно, должны управляться идентично.

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

Таким образом, невозможно дать общий ответ на вопрос «как остановить процессы пакета snap». Этот комментарий в равной степени применим, если вы опускаете слово «привязка». Так что на самом деле конкретный ответ возможен только для конкретного программного обеспечения.

0
ответ дан 23 April 2021 в 23:27

Другие вопросы по тегам:

Похожие вопросы: