首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何停止snap包的所有进程(如Android)

如何停止snap包的所有进程(如Android)
EN

Ask Ubuntu用户
提问于 2021-04-04 09:07:54
回答 2查看 2.3K关注 0票数 3

这个问题很奇怪。请注意,这不是android-studio问题,而是snap问题。android-studio只是一个行为不端的罪魁祸首,应该受到snap的约束。

android-studio是通过snap安装的。但是有时进程仍然挂在后台,在关闭android-studio之后占用大量的CPU (因此也会消耗电池的电量)。然后,我需要使用带有开关-9的进程ID手动杀死这些数据。

这真的是计划中的方法吗?和snap

我试图在互联网上找到任何指针,但是在snap的帮助下,我完全失败了。这些命令似乎都不存在,或者没有任何帮助,或者完全错误。另外,snap文档似乎隐藏了我正在寻找的很好的一点(或者它丢失了吗?)

请注意,所有常见的事情都是没有问题的:

  • 从Ubuntu安装一个软件包
  • 移除包裹
  • 使用一个包(主要以我想要的方式工作)
  • 正确地更新包(在谷歌搜索了几天之后,我终于找到了一种自动保持事物整洁的方法)

但是,我仍然感到困惑,how,我是否应该正确地控制一个应用程序包

嗯,是snap,所以所有东西都包装整齐,对吧?当然,也有一些常见的简单方法,可以完全停止在这样一个快速容器中的所有东西,对吗?

例如,使用lxc-stop container,容器中的所有内容都会被撕毁。很简单。但在snap身上,我没有发现类似的东西。

以下是我尝试过并被其他页面部分推荐的内容:

代码语言:javascript
复制
$ snap status
error: unknown command "status", see 'snap help'.
代码语言:javascript
复制
$ snap stop android-studio
error: access denied (try with sudo)

它是作为用户启动的,所以同一个用户必须能够再次停止它。sudo当然可以到达这里,但是让我们重新尝试使用sudo

代码语言:javascript
复制
$ sudo snap stop android-studio
error: snap "android-studio" has no services
代码语言:javascript
复制
$ killall android-studio
android-studio: no process found

但是,对于pstophtop,有一些进程(当然,部分是java ):

代码语言:javascript
复制
$ 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上问这个问题,因为我只在Ubuntu上使用snap
EN

回答 2

Ask Ubuntu用户

回答已采纳

发布于 2021-04-04 12:10:55

snap是一个用于应用程序分发和安装的系统。从安装为snap的程序中产生的进程与运行在系统上的任何其他软件的进程没有什么不同,因此要进行相同的管理。

换句话说,没有任何特定的进程与软件相关联,作为一个简单的安装。每个软件包都会导致启动一个或多个进程。这些是特定于软件的。

因此,对于“如何停止快速包装的过程”这一问题,不能给出一般的答案。如果你省略了“简单”这个词,这句话也同样适用。所以,一个具体的答案只有在特定的软件中才有可能。

票数 0
EN

Ask Ubuntu用户

发布于 2023-01-16 18:42:11

如果snap拒绝刷新某些内容,因为它有正在运行的进程,那么您可以通过运行以下命令来精确地找出它们是什么:

代码语言:javascript
复制
# snap refresh my-awesome-app

如果存在正在运行的进程,它将响应类似于以下内容的内容:

代码语言:javascript
复制
error: cannot refresh "my-awesome-app": snap "my-awesome-app" has running apps (my-awesome-app), pids:
       1210273,1210277,1210278

你可以杀了他们:kill 1210273 1210277 1210278

之后,再试一次snap refresh

票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1329139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档