2011-05-26 27 views
2

我试图启动一个进程,虽然ps -ef | grep myprocessname没有显示它正在运行,但当我调用脚本启动它时,它表示进程已经在运行,正在退出。linux - 进程已经在运行的错误

我搜索了大约一个小时的互联网,我找不到任何答案。谁能帮忙?谢谢。

@TILO:在/ var/run下没有名称甚至接近我的进程的文件。还有其他建议吗?

@VKRAM:这是第三方软件。有什么建议么?

+1

过程是怎样的,你正在运行?相关? – vkrams 2011-05-26 03:03:15

+0

由于这是第三方程序(=最终用户支持),因此可能属于超级用户 - 已投票迁移 – bdonlan 2011-05-26 03:21:10

+1

此外,具体是哪个程序? – bdonlan 2011-05-26 03:21:23

回答

2

如果您尝试启动的进程存在.pid文件,请在/ var/run下进行检查。

例如/var/run/mysqld/mysqld.pid就是这样一个文件。

该文件包含进程的PID ...

运行 PS -edaf | grep的PID#你在文件中找到PID

如果过程没有找到,你可以删除PID文件 - 然后再尝试启动您的进程再次

1

尝试使用上有问题的程序strace的:

strace yourprogram 

不久就终止之前,你应该看到的系统调用它来确定另一个实例正在运行,并且可以从那里反向工程它正在使用的方法。

0

你说你不能找到PID文件...

  1. 如果你不能找到PID文件(也许是因为一些在/ var /目录运行的是深层嵌套) , 试试这个,看看在那里所有的PID文件的列表:

    查找/ var/run中型的F -name '* .pid'

    查找/无功型的F -name“*。 pid'

    也许哟你会看到一个与你试图启动的进程名称相似的文件名。 或者您也可以在该行的末尾加上grep,并尝试grep列表中的进程名称。

  2. 一些程序把也使用锁文件 - 这些都可以在/ var /锁/或/ var /锁/子系统

  3. 通常被发现如果不帮助,尝试一下在开始 - 你正在使用的脚本,例如详细/etc/init.d/中 看它下,寻找类似LOCK_FILE或PID_FILE

相关问题