标签: pid

如何获取应用程序的父进程的PID

我的winform应用程序由另一个应用程序(父代)启动,我需要确定应用程序的pid,它使用c#启动我的应用程序.

.net c# pid process winforms

27
推荐指数
3
解决办法
2万
查看次数

如何从文本文件变量到Bash变量

简单的问题,在BASH我试图读取一个.pid文件来杀死一个进程.如何将该文件读入变量.我发现的所有例子都试图阅读许多内容.我只想读取一个只包含PID的文件

#!/bin/sh
PIDFile="/var/run/app_to_kill.pid"
CurPID=(<$PIDFile)

kill -9 $CurPID
Run Code Online (Sandbox Code Playgroud)

bash pid kill

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

通过PID获取进程名称

这应该很简单,但我只是没有看到它.

如果我有进程ID,我该如何使用它来获取有关进程的信息,例如进程名称.

python pid process

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

如何检测Linux上程序的启动?

我写了一个简单的守护进程.这个守护进程应该在我运行任何程序时响应.这该怎么做?在一个大守护进程循环中:

while(1)
{
   /* function which catches new programm running */
}
Run Code Online (Sandbox Code Playgroud)

当我运行一个新程序(创建新进程)时,在linux中调用什么函数?

c linux pid

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

当app运行时,android studio打开调试模式

如何在android studio上运行应用程序时打开调试模式.

我的应用程序出现在 - Android Device Monitor- Devices选项卡上.当我在此屏幕上单击应用程序行时,调试图标未激活

运行我的应用程序后如何进入调试模式?

debugging pid android-studio

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

用于检查PID是否被僵尸的便携式shell解决方案

我想检查PID是否正在运行(即存在并且没有被僵尸).

它真的很快,/proc/$PID/stat但我想要一些更便携的东西.

我现在最好的是:

( STAT="$(ps -ostat= -p$PID)"; test "$STAT" -a "$STAT" "!=" "Z" )
Run Code Online (Sandbox Code Playgroud)

这似乎适用于BSD和Linux.有没有更好的办法?

unix shell pid sh

25
推荐指数
1
解决办法
465
查看次数

Python:用于创建基于PID的锁文件的模块?

我正在写一个Python脚本,可能会或可能不会(取决于一堆东西)运行很长时间,我想确保多个实例(通过cron启动)不会踩到彼此脚趾.这样做的逻辑方法似乎是基于PID的锁文件...但是如果已经有代码执行此操作,我不想重新发明轮子.

那么,是否有一个Python模块可以管理基于PID的锁文件的细节?

python lockfile pid

24
推荐指数
4
解决办法
2万
查看次数

如何在不延迟任务的情况下优雅地重新启动Celery

我们使用Celery和我们的Django webapp来管理离线任务; 其中一些任务可以运行长达120秒.

每当我们进行任何代码修改时,我们都需要重新启动Celery以重新加载新的Python代码.我们当前的解决方案是将SIGTERM发送到主Celery进程(kill -s 15 `cat /var/run/celeryd.pid`),然后等待它死并重新启动它(python manage.py celeryd --pidfile=/var/run/celeryd.pid [...]).

由于长时间运行的任务,这通常意味着关闭将花费一两分钟,在此期间不会处理任何新任务,从而导致当前站点上的用户显着延迟.我正在寻找一种方法告诉Celery关闭,但随后立即启动一个新的Celery实例来开始运行新任务.

事情并没有工作:

  • 将SIGHUP发送到主进程:这导致Celery尝试通过执行热关闭然后重新启动来"重启".这不仅需要很长时间,甚至还不起作用,因为显然新工艺在旧工艺死亡之前启动,因此新工艺会ERROR: Pidfile (/var/run/celeryd.pid) already exists. Seems we're already running? (PID: 13214)立即抱怨并死亡.(这看起来像芹菜本身的一个错误;我让他们知道它.)
  • 将SIGTERM发送到主进程,然后立即启动新实例:与Pidfile相同的问题.
  • 完全禁用Pid文件:如果没有它,我们无法告诉30个Celery进程中哪一个是我们希望它进行热关闭时需要发送SIGTERM的主要进程.我们也没有可靠的方法来检查主要过程是否仍然存在.

linux django pid celery celeryd

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

docker容器将无法启动,因为现有的pid文件

当我启动一个docker容器时,它失败了,因为现有的pid文件:

[root@newhope sergio]# docker logs sharp_shockley 
httpd (pid 1) already running
httpd (pid 1) already running
httpd (pid 1) already running
httpd (pid 1) already running
Run Code Online (Sandbox Code Playgroud)

如何删除这样的文件,因为我找不到它.

[root@newhope sergio]# docker version
Client version: 1.4.1
Client API version: 1.16
Go version (client): go1.3.3
Git commit (client): 5bc2ff8/1.4.1
OS/Arch (client): linux/amd64
Server version: 1.4.1
Server API version: 1.16
Go version (server): go1.3.3
Git commit (server): 5bc2ff8/1.4.1

[root@newhope sergio]# find / -name "httpd.pid"
find: ‘/run/user/1000/gvfs’: Permiso denegado
Run Code Online (Sandbox Code Playgroud)

pid docker

23
推荐指数
4
解决办法
2万
查看次数

获取进程的PID由Process.start()启动

我正在使用此代码启动可执行文件:

Process proc = new Process();
proc.StartInfo.FileName = executablePath;
proc.Start();
proc.WaitForInputIdle();
Run Code Online (Sandbox Code Playgroud)

在这个调用之后proc.Id它给了我一些整数,这不是真正的进程ID.在任务管理器中,此进程还有另一个ID,我也使用MS UI Automation访问此应用程序,该应用程序也返回与任务管理器中相同的ID.所以我的问题是如何获得启动过程的真实进程ID?

UPDATE

我发现在Windows 7上它工作正常并返回正确的ID,但不是在Windows XP上.可能是什么原因?

情景

该应用程序的场景如下.我有一个正在运行的嵌入式HTTP服务器,它不是由我实现的(这里是源代码).客户端连接到Web服务器并发送运行程序的请求.在我的服务器的请求处理程序中,我只是Process.start()用来启动请求的应用程序.作为Web服务器,程序为连接到它的每个客户端会话创建线程(我假设如此,因为我没有写它).这可以以某种方式帮助识别问题,因为它只存在于Windows XP X86 Service Pack 3上吗?

c# pid process .net-4.0

22
推荐指数
2
解决办法
4万
查看次数

标签 统计

pid ×10

process ×3

c# ×2

linux ×2

python ×2

.net ×1

.net-4.0 ×1

android-studio ×1

bash ×1

c ×1

celery ×1

celeryd ×1

debugging ×1

django ×1

docker ×1

kill ×1

lockfile ×1

sh ×1

shell ×1

unix ×1

winforms ×1