douhuan1979 2014-10-08 09:26 采纳率: 100%
浏览 68
已采纳

PHP - 验证程序是否正在运行

I assembled and configured a mini server at home running Debian GNU/Linux with Apache. I also installed the open source video game Teeworlds in order to run a dedicated server.

My idea is to display some information regarding the status of the server on my website, using Apache and PHP. The most important feature is to display if the server is running or not.

I tried using the pgrep command at first that works fine with many processes but not in my case:

<?php exec("pgrep process_name", $output, $return);
  if ($return == 0) {
    /*Service is running*/
  }
  else{
    /*Service is not running*/
  }
?>

Next I found out that this works in the terminal:

ps -ef | awk '$8=="/usr/games/teeworlds-server" {print $2}'

but I can't use it with the PHP exec command because this string uses double quotes (it doesn't work this single quotes).

Is there any other way to check the status of a process using PHP? Or am I doing something wrong?

Note: The game has been installed from the official Debian repositories.

  • 写回答

2条回答 默认 最新

  • dreamact3026 2014-10-08 10:00
    关注

    I solved this problem by changing the exec command:

    exec("ps -ef | awk '$8==\"/usr/games/teeworlds-server\" {print $2}'", $output, $return)

    with shell_exec:

     $test= shell_exec("ps -ef | awk '$8==\"/usr/games/teeworlds-server\" {print $2}'");
     if ($test>0) {
       /*Server is running*/
     }
     else{
       /*Server is not running*/
     }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line