2015-09-04 43 views
0

我創建了一個簡單的bash文件來運行一個PHP文件是這樣的:在運行bash文件

ws.sh

!#/bin/bash 
php -q /var/www/htdocs/server.php 

server.php

<?php 
// prevent the server from timing out 
set_time_limit(0); 
session_start(); 
// include the web sockets server script (the server is started at the far bottom of this file) 
require 'class.PHPWebSocket.php'; 

// when a client sends data to the server 
function wsOnMessage($clientID, $message, $messageLength, $binary) { 
    global $Server; 
    $ip = long2ip($Server->wsClients[$clientID][6]); 

    // check if message length is 0 
    if ($messageLength == 0) { 
     $Server->wsClose($clientID); 
     return; 
    } 

    $_SESSION['currentId'] = $message; 
} 

// when a client connects 
function wsOnOpen($clientID){ 
    global $Server; 
    $ip = long2ip($Server->wsClients[$clientID][6]); 
    $Server->log("$ip ($clientID) has connected. "); 
    $data = array('connectionId' => $clientID,'msg'=>'Connected'); 
    $Server->wsSend($clientID, json_encode($data)); 

} 

// when a client closes or lost connection 
function wsOnClose($clientID, $status) { 
    global $Server; 
    $ip = long2ip($Server->wsClients[$clientID][6]); 

    $Server->log("$ip ($clientID) has disconnected. sess = ".$session_id); 

} 

// start the server 
$Server = new PHPWebSocket(); 
$Server->bind('message', 'wsOnMessage'); 
$Server->bind('open', 'wsOnOpen'); 
$Server->bind('close', 'wsOnClose'); 

$Server->wsStartServer('server-ip-here', 81); 

?> 

然後我的終端我將運行bash文件到後臺

./ws.sh & 

現在,問題是如果在後臺運行客戶端的bash文件無法連接到我的websocket並返回錯誤「CONNECTION REFUSED」,但如果它的正常運行(而不是後臺),我不得不連接到它的問題。任何想法?請幫忙。謝謝!

回答

0

已經算出來了。我只是將我的php命令行更改爲:

php -q /var/www/htdocs/server.php >/dev/null 2>&1 &