linux - 进程已经运行错误

时间:2011-05-26 03:01:01

标签: linux process

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

我在互联网上搜索了大约一个小时,我找不到任何答案。有人可以帮忙吗?谢谢。

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

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

3 个答案:

答案 0 :(得分:2)

检查/ var / run下是否存在您尝试启动的进程的.pid文件。

e.g。 /var/run/mysqld/mysqld.pid就是这样一个文件。

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

运行一个    ps -edaf | grep PID#与你在文件中找到的pid

如果找不到该过程,您可以删除pid文件 - 然后再次尝试启动您的过程

答案 1 :(得分:1)

尝试在相关程序中使用strace:

strace yourprogram

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

答案 2 :(得分:0)

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

  1. 如果找不到PID文件(可能是因为/ var / run下的某些目录是深层嵌套的), 试试看这里所有PID文件的列表:

    查找/ var / run -type f -name'* .pid'

    找到/ var -type f -name'* .pid'

    也许您会看到一个类似于您尝试启动的进程名称的文件名。 或者你也可以在该行的末尾放一个grep并尝试grep查看列表中的进程名称。

  2. 有些程序也使用锁文件 - 这些文件通常可以在/ var / lock /或/ var / lock / subsystem下找到

  3. 如果这样做无效,请尝试查看您正在使用的启动脚本,例如:在/etc/init.d/下 仔细查看它并查找LOCK_FILE或PID_FILE

  4. 之类的内容