标签: kill

分叉两个进程并在第一个进程完成时终止第二个进程

我想创建一个bash脚本,它将启动两个进程并在第一个进程完成时终止第二个进程.这是一个例子:

#fork first process
producer&

#fork second process
consumer&

#wait for producer to finish
...

#kill the consumer
...

我有一种感觉,这可能会变得丑陋,但有一个非常简单的解决方案.请帮我填空.

bash kill

5
推荐指数
1
解决办法
6163
查看次数

Android Activity Lifecycle:在kill之后恢复应用程序 - 设计问题

atm我试着让我的应用程序解决"onSaveInstanceState"和"onRestoreInstanceState",但是我越深入,问题就越多.

所以,例如,我刚刚意识到,通过这两个函数恢复一个活动是没有用的.因为,如果我按下后退按钮并返回之前的活动,这个没有得到它的"savedInstanceState"包,而是完全重新创建.

有没有办法恢复整个应用程序而不只是一个活动?或者这只是一个奇怪的设计,我甚至不打扰恢复一个活动?

亲切的问候,水母

编辑:好的,傻我...

我的主要活动所获得的包不是空的,而只是在"onRestore ..."中.在"onCreate"中它确实是空的,但这一直是真的.(例如,无论我是否在杀人后从另一项活动中回来)

所以现在我以另一种方式感到困惑:我之前在另一个活动中测试了这个,并且在那里,savedInstanceState包的"onCreate"和"OnRestoreInstanceState"在哪里相同!这只是随机或主要活动的特殊内容吗?(尝试了不同的发射模式,但它们没有影响).

android kill activity-lifecycle android-activity

5
推荐指数
1
解决办法
4406
查看次数

Dispose方法失败后该怎么办?

好吧,我再次提出另一个令人沮丧的问题.我需要结束我的主进程并重新启动它,但我不能只是优雅地结束应用程序...

我正在将C#应用程序与专有(不是我)数据捕获硬件结合使用,因此它已经很复杂了.

有一种情况,我的软件正在愉快地运行,收集它应该的数据,当我与之接口的硬件突然断电和与我的应用程序的连接时.我的应用程序最终解决了这个问题,我只需要处理我的旧连接,然后重新连接到我的硬件.错误...

当然,我的对象(带有硬件的接口对象)上的.Dispose()方法终止连接什么都不做,实际上当我尝试运行它时,它就永远锁定到位.显然,在断开发生时,需要设备连接的配置方法永远不会超时.我没有写这个方法,所以我真的不知道.

最后,这是我的问题.让我的应用程序重新启动并再次运行的唯一方法是关闭它并重新打开它.当然,我实际上无法很好地关闭它因为我无法运行Dispose方法.我被迫通过任务管理器结束它的过程.是的,这个过程,而不仅仅是应用程序.如果我关闭它,这个过程将永远存在,我别无选择.

我需要找到一种方法来自动化这个过程暗杀,这样我的用户才能真正使用它,但我该怎么办?我知道流程终止是禁忌,但我有什么选择?

我喜欢使用Application.Restart(),但这根本不起作用,我的表格甚至没有关闭,它只是锁定.有没有办法在告诉自己重新启动之前解决这个过程?也许我可以使用批处理文件或其他东西吗?Application.Exit至少将表单从屏幕上移除.

截至目前,我正在从任务管理器中删除它,或者我的用户通过弹出PC上的断路器来杀死它.比任何软件方面都要严厉得多.

c# dispose kill

5
推荐指数
1
解决办法
221
查看次数

无法清除其父级为init的僵尸进程

我有一个僵尸进程:

$ ps aux | grep Zl
root      6641  122  0.0  0 0 ? Zl   08:57 371:10 [ovs_dpdk] <defunct>
Run Code Online (Sandbox Code Playgroud)

而且,其父项看起来像 init

$ pstree
init???acpid
     ??atd
     ??cron
     ??dbus-daemon
     ??dnsmasq
     ??6*[getty]
     ??irqbalance
     ??libvirtd???10*[{libvirtd}]
     ??ovs_dpdk???{ovs_dpdk}               <==== here
     ??rpc.idmapd
Run Code Online (Sandbox Code Playgroud)

但是,杀死-9并不会杀死他...

sudo kill -9 6641
Run Code Online (Sandbox Code Playgroud)

我被困在这里,有什么帮助吗?

linux kill zombie-process

5
推荐指数
1
解决办法
8943
查看次数

Bash:如何显示作业流程的完整列表并将其删除

我发出命令 task1 & task2 dir/ && task3 &

  • Task1永远不会结束,所以我们将它发送到后台.
  • Task2更改目录
  • Task3依赖于task2完成.

发行:jobs -l将显示:

[1]- 39281 Running                 task1 &
[2]+ 39282 Running                 task2 && task3 &
Run Code Online (Sandbox Code Playgroud)

发行:ps将显示:

39281 ttys002    0:04.17 task1  
39282 ttys002    0:00.00 task2
39283 ttys002    0:03.66 task3
Run Code Online (Sandbox Code Playgroud)

问题:

  1. 有没有办法在jobs命令输出中显示task3?
  2. 为什么task3不作为自己的工作出现?
  3. 有没有办法同时杀死所有三个任务?
  4. 如果我杀死task2,为什么task3不会死?
  5. 有一个更好的方法吗?

目标: 发出一行命令来初始化工作流并将其发送到后台.准备就绪时,一次性杀死所有已启动的进程.

对于上下文而言,在我的情况下,task1是一个带有livereload的grunt任务,所以它应该被发送到后台.Task2更改目录,以便task3可以监视该目录中更改的文件.

macos bash jobs kill

5
推荐指数
1
解决办法
886
查看次数

我杀死它后,该过程会自动再次出现

我尝试用终止进程sudo kill 30602。但是在我杀死它之后,我使用它ps aux | grep gmond进行检查,并再次显示另一个pid,就像:

ganglia  30997  0.0  0.1 121812  2128 ?        Ssl  16:05   0:00 /usr/sbin/gmond --pid-file=/var/run/ganglia-monitor.pid
Run Code Online (Sandbox Code Playgroud)

无论我如何杀死它,它都会再次显示另一个pid,即使使用kill -9

有什么问题?以及如何解决呢?

linux ubuntu kill process inittab

5
推荐指数
1
解决办法
5367
查看次数

如何使用通过模块sys运行的命令来获取Python程序?

我想看看Python程序如何通过使用该模块发出命令来自杀sys.我怎么能用以下形式的命令让它自杀呢?:

os.system(killCommand)
Run Code Online (Sandbox Code Playgroud)

编辑:强调清晰

所以,为了清楚起见,我希望有一个在shell中运行的字符串可以杀死Python程序.

python shell kill

5
推荐指数
1
解决办法
2万
查看次数

我的程序是“杀”

可能是由内核的建议在此问题。我想知道为什么我被杀,就像发生暗杀一样。:)

此外,我能做些什么使我的程序正常执行吗?


编年史

我的程序正常执行。但是,我们遇到了一个很大的数据集,即1.000.000 x 960浮点数,我家里的笔记本电脑无法拿走它(给出了std::bad_alloc())。

现在,我在实验室中,台式机配备9.8 GiB,处理器3.00GHz×4,其内存是家用笔记本电脑的两倍多。

在家里,数据集无法加载到std::vector存储数据的。在这里,在实验室中,这已经完成,程序继续构建数据结构。

那是我最后一次听到的消息:

Start building...
Killed
Run Code Online (Sandbox Code Playgroud)

实验室中的桌面在Debian 8上运行。我的程序针对数据集的子集(特别是1.00.000 x 960浮点数)按预期运行。


编辑

strace 输出最终可用:

...
brk..
brk(0x352435000)                        = 0x352414000
mmap(NULL, 1048576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = -1 ENOMEM (Cannot allocate memory)
mmap(NULL, 134217728, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x7f09c1563000
munmap(0x7f09c1563000, 44683264)        = 0
munmap(0x7f09c8000000, 22425600)        = 0
mprotect(0x7f09c4000000, 135168, PROT_READ|PROT_WRITE) = 0
...
mprotect(0x7f09c6360000, 8003584, PROT_READ|PROT_WRITE) = 0
+++ killed by SIGKILL +++
Run Code Online (Sandbox Code Playgroud)

所以这告诉我们,我的记忆了,我

c++ linux debian kernel kill

5
推荐指数
1
解决办法
5359
查看次数

仅杀死特定Java jar的进程(实例)

我需要创建自动脚本,该脚本会杀死特定Java JAR的运行进程。

我是这样手动进行的:

jps -v

6753 Jps
4573 myJarToKill.jar
4574 notMyJarToKill.jar
4576 myJarToKill.jar
Run Code Online (Sandbox Code Playgroud)

我根据JAR名称选择特定的进程,例如myJarToKill.jar并运行以杀死它们。

kill 4573 4576  
Run Code Online (Sandbox Code Playgroud)

是否可以像这样通过grep或sth获取此进程的数量?通过它杀死命令?

linux bash grep kill

5
推荐指数
1
解决办法
1820
查看次数

YARN Container在被杀后有潜在的进程

我一直在玩分布式shell示例,我注意到当我杀死长时间运行的应用程序时,该过程仍然存在.例如,如果我sleep 1000在容器启动几秒后使用命令终止了一个distshell应用程序,则仍会显示一个进程

yarn        33138   0.0  0.0  2432752    508   ??  S    12:20PM   0:00.00 sleep 1000
Run Code Online (Sandbox Code Playgroud)

我认为YARN会对清理子进程有好处吗?也许这仅适用于JAVA流程?

containers kill hadoop-yarn

5
推荐指数
0
解决办法
79
查看次数