问题标签 [kill-process]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 为什么调用 Process.killProcess(Process.myPid()) 是个坏主意?
我读过一些帖子,说使用这种方法“不好”,不应该使用,这不是“关闭”应用程序的正确方法,也不是 Android 的工作方式......
我理解并接受 Android 操作系统比我更清楚何时终止进程的正确时间这一事实,但我还没有听到关于为什么使用该killProcess()
方法是错误的很好的解释。毕竟 - 它是 Android API 的一部分。
我所知道的是,在其他线程正在执行潜在的重要工作(文件操作、写入数据库、HTTP 请求、运行服务..)时调用此方法会导致线程被终止,这显然不好。另外,我知道我可以从“重新打开”应用程序会更快的事实中受益,因为系统从上次使用应用程序时仍然“保持”在内存状态,并killProcess()
防止这种情况发生。
除了这个原因,假设我没有这样的操作,并且我不在乎我的应用程序是否每次打开它都会从头开始,还有其他原因我不应该使用该killProcess()
方法吗?
我知道finish()
关闭 an 的方法Activity
,所以请不要在你的答案中包含它。
finish()
仅适用于Activity
,并非适用于所有应用程序,我想我确切地知道为什么以及何时使用它。
还有一件事——我正在使用 Unity3D 框架开发游戏并将项目导出到 Android。当我对生成的apk进行反编译时,我很惊讶地发现从unity-实现Unity的-Application.quit()
方法创建的java源代码,带有Process.killProcess(Process.myPid())
.
Application.quit()
根据 Unity3D 文档,应该是关闭游戏的正确方法(真的吗?也许我错了,错过了什么),那么为什么 Unity 的框架开发人员要在原生 Android 中实现这一点?
android - 使用即将挂载的sdcard时如何避免应用程序被杀死?
假设我在 SD 卡上有繁重的工作(比如 CRC 检查、下载或任何你能想到的)。事实证明,如果用户在应用程序运行期间挂载 SD 卡(或移除它),应用程序将自动被操作系统杀死而不会发出任何警告。
我想避免它,而不是退出。相反,我想在可能的情况下停止工作并恢复(或做其他事情,只是不被杀死)。
所以,简而言之,我的问题正如标题所说:当安装 SD 卡时,如何避免我的应用程序在使用 sdcard 时被杀死?
我尝试了以下方法:
捕获所有异常。这不起作用,因为该应用程序被简单地杀死了。
通过广播接收器收听安装的意图。没有工作,因为应用程序在捕捉到意图之前就被杀死了。
检查sd卡的状态。这不起作用,因为可以在检查和写入之间完成安装。
我也许可以创建一个新服务来处理与 sd 卡相关的所有事情,并为其提供自己的进程,但这真的是解决方案吗?它甚至会起作用吗?没有其他方法可以解决这个问题吗?
作为示例代码,您可以使用下面的代码。它只是为了解决问题:
注意:当然我开发的应用程序安装在内部存储中。我知道安装在 sd 卡上的应用程序不会被杀死是没有意义的。当然,这也可能是一个有趣的问题(甚至可以避免安装 sd 卡?),但这不是这里的问题。
linux - 使用名称启动进程
基本上我想动态启动一些可能创建自己的子进程的进程,我也想随时杀死我刚刚创建的某个进程组。我能想到的一种方法是使用名称启动进程(以区分为一个组),然后使用 pkill 按名称杀死它们。问题是如何使用名称启动进程,以便我可以使用 pkill 按名称杀死它们?我也对其他解决方案持开放态度。
kill-process - 使用 Microsoft.Office.Interop.Excel 时终止 EXEL.EXE 进程
可能重复:
终止互操作应用程序进程
我正在使用 Microsoft.Office.Interop.Excel 以从 excel 中获取数据。即使我清除了 COM 对象,它仍然会在后台留下一些 EXEL.EXE 实例。检查下面的代码。
请告诉我哪里出错了。
php - 从浏览器运行时 posix_kill 不起作用
我有一个简单的脚本,它试图杀死一个已经在运行的进程。我也在使用 posix_kill 。该脚本运行良好,如果我从命令 shell 运行它,但是当我从浏览器运行它时它不起作用。
我总是得到以下输出,这意味着脚本执行得很好,但进程没有被杀死: process id -- 4632 array (size=3) 0 => string '' (length=0) 1 => string '4633' (length=4) 2 => string '' (length=0) Killing 4633
我检查了 apache“error.log”文件,发现对于我从浏览器执行的每次运行,附加条目添加如下:[Sat Jun 23 12:24:55 2012] [error] [client 127.0. 0.1] 文件不存在:/var/www/favicon.ico
不幸的是,这个错误并没有给我太多关于出了什么问题的信息。我检查了 php.ini 设置,似乎没有任何问题(根据我的有限理解)。我在“disabled_functions”列表等或任何其他应该阻止我执行进程的设置中看不到 posix_kill。
真诚地感谢一些帮助!
谢谢,卡皮尔
php - fclose(): 18 不是有效的流资源
我正在尝试使用 proc_open 执行进程。进程的 I/O 由管道处理!
现在,碰巧的是,有时我打开的“c 程序”确实卡住了,我添加了一个 max_time_limit 检查,它会强制关闭进程。我添加了回调函数 - 即 onExit -(使用“call_user_function”)以在“进程退出”时以有效方式或强制方式处理信息。
在“退出”功能中,我正在关闭 i/o 管道
如果进程有一个有效的退出,上面的工作非常好。但是,在我强行终止进程的情况下,我调用了 proc_terminate 来执行此操作。我知道进程的终止也会继续并关闭任何 I/O 管道,但问题是由于回调,我的“onExit”函数进程总是被调用(这就是我想要的方式.. .因为我需要做更多的处理)。现在,在这种情况下,当我尝试关闭管道时,我收到以下错误:
我尝试使用“ftell”来检查管道是否有效,但这也出错了。如何检查管道是否已经关闭?
windows - 如何杀死 node.js 上的打开进程?
我正在尝试在 sublime 上为 Node.js 设置一个构建系统,所以我可以按 F7 在打开的文件上调用“节点”。问题是该进程将永远打开,因此,我第二次使用 F7 时,我得到了一个附加使用。
有没有办法可以从 node.js 中杀死打开的“node.exe”进程?
javascript - Javascript Process Kill with pass in name
我正在寻找一个简短的 javascript 代码来杀死在我的 windows 机器上运行的进程(我正在 7 上开发程序,但它必须在服务器 2003 上的生产中运行)。我从以下代码开始:
我需要使被杀死的过程成为我传递的东西。有许多不同的东西要杀死,我有另一个程序可以确定要杀死的东西。
我现在有以下代码,但它仍然不起作用:
linux - 如何杀死Linux中特定端口上运行的进程?
我尝试使用./shutdown.sh
from tomcat/bin
目录关闭 tomcat。但是发现服务器没有正常关闭。因此我无法重新启动
我的 tomcat 正在端口上运行8080
。
我想杀死运行在8080
. 我首先想要在特定端口(8080)上运行的进程列表,以便选择要杀死的进程。
c# - 杀死多线程进程
视窗手机 6.5
我有一个使用 System.Threading.Timer 以指定的时间间隔将一些数据上传到网络的进程。
现在我想从一个 GUI 应用程序中终止这个过程。我可以使用进程枚举器来获取 Process 对象。当我调用 Process.Kill 时会发生什么?它是否会终止它,该过程可能正在从本地数据库读取/删除数据并将其发送到服务。我该怎么做才能确保至少如果它在中间它不会终止,并且一旦它完成它可以在下一个 Timer 事件触发之前终止?