2014-09-25 84 views
1

我在php中使用web-socket運行聊天服務問題是當我關閉命令行時連接也關閉,是否有解決方案以便聊天服務可以永遠運行。 我使用這個命令如何在命令行中永久在ubuntu中運行php文件

php -q server.php 
+2

nohup的PHP -q server.php& – Cheery 2014-09-25 04:45:15

+0

我不知道,如果cron作業將幫助您與此有關。 – andrex 2014-09-25 04:50:17

+0

@andrex否,cron作業不適用於此 – john 2014-09-25 04:54:05

回答

3

您的服務器它的名字作爲start_server.php 創建一個PHP文件,併發布該內容

  <?php 

      $shell_command = "php -q server.php > /dev/null &"; 
      shell_exec($shell_command); 

      ?> 

現在執行這個命令

PHP start_server.php

0

我使用screen運行php腳本,到目前爲止我沒有真正面臨任何問題。

屏幕是一個全屏幕窗口管理器,它在幾個進程(通常是交互式shell)之間多路複用一個物理終端。每個虛擬終端提供DEC VT100終端的功能,此外,還提供ISO 6429(ECMA 48,ANSI X3.64)和ISO 2022標準(例如插入/刪除線路和支持多個字符集)的多種控制功能。每個虛擬終端都有一個回滾歷史記錄緩衝區,以及允許在窗口之間移動文本區域的複製粘貼機制。

更多關於屏幕here

使用屏幕的一個缺點是,如果您在腳本中進行了更改,則必須終止虛擬終端並創建一個新的更改才能生效。

下面是一個示例代碼:

$ screen -L php /path/to/php/script 

這將創建一個新的虛擬終端。

一些有用的命令:

  • 要取下屏幕(一旦你在虛擬終端):ctrl + a + d
  • 要恢復屏幕(從一次分開你的主終端):$ screen -r 如果有多個屏幕在您的機器上運行上述命令之後應該跟隨每個屏幕唯一的pid.tty.host字符串
  • 終止屏幕:ctrl + c
  • 要列出pid.tty.hos每個終端的牛逼字符串:$ screen -ls