我有php bash脚本做一些数据库处理。我需要知道的是这个脚本的调用者。我不知道它是进程还是其他脚本。那么有没有办法知道调用者的进程ID或脚本名称?
脚本由某个进程运行,其代码以解释器路径“#!/ usr / bin / php”开头。此文件仅作为bash脚本调用。
操作系统:Centos 6.5
答案 0 :(得分:0)
您可以尝试这样的事情
<?php
Check for a current process by filename
function processExists($file = false) {
$exists = false;
$file = $file ? $file : __FILE__;
// Check if file is in process list
exec("ps -C $file -o pid=", $pids);
if (count($pids) > 1) {
$exists = true;
}
return $exists;
}
?>
这将检查您尝试跟踪的文件名。如果您需要进程ID,只需调整exec中的内容或返回$ pids即可。
试试这个---
$mystring = "script_running";
exec("ps aux | grep \"${mystring}\" | grep -v grep | awk '{ print $2 }' | head -1", $out);
print "The PID is: " . $out[0];
ps aux更能描述正在运行的内容。