最近版本的PHP有一个内置的web服务器(适用于非生产环境),可以用php -S [...] 。
在尝试启动服务器之前,如何检查它是否已经在服务器上运行?
我意识到,哈克的方式是试图启动它,并寻找错误信息Failed to listen on [...] ,但我认为可能有一个更清洁的方式:-)
编辑:我忘了提到,最终我希望能够检查这个脚本,只有启动服务器,如果它尚未开始。 我也忘记提到我正在寻找一个Linux解决scheme,但Windows解决scheme当然也是受欢迎的,以防其他人会在这一天寻找:-)
正如迈克尔汉普顿已经提出的那样,一个像ps aux | grep php的命令 如果PHP的web服务器已经启动, ps aux | grep php将会显示。
由于我对Paolo答案的编辑被拒绝了,下面是一个更完整的答案:
ps aux | grep php
如果php正在运行,这个命令会输出如下的内容:
pi 3245 0.0 0.5 21400 2416 pts/0 S Jan29 0:02 php -S localhost:8000 -t /path/to/php/docroot pi 3518 0.0 0.3 5220 1712 pts/0 S+ 00:42 0:00 grep --color=auto php
第二行可以忽略,因为它只是自引用search命令。 该脚本将检查服务器是否正在运行,如果不是,则启动它:
if ! ps aux | grep -v grep | grep -qs 'php -S localhost:8000'; then php -S localhost:8000 -t /path/to/php/docroot &>/dev/null & fi