Это странный вопрос. Обратите внимание, что это не вопрос 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
. snap
в Ubuntu Snap - это система для распространения и установки приложений. Процессы, порожденные программой, установленной как оснастка, не отличаются от процессов любого другого программного обеспечения, запущенного в системе, и, следовательно, должны управляться идентично.
Другими словами, нет ничего особенного в процессах, связанных с программным обеспечением, устанавливаемым в мгновение ока. Каждый программный пакет вызывает запуск одного или нескольких процессов. Какие из них относятся к программному обеспечению.
Таким образом, невозможно дать общий ответ на вопрос «как остановить процессы пакета snap». Этот комментарий в равной степени применим, если вы опускаете слово «привязка». Так что на самом деле конкретный ответ возможен только для конкретного программного обеспечения.