abonnement Unibet Coolblue Bitvavo
pi_127782277
Ik draai op mijn Windows Server 2008 een freeSSHd server, en deze gebruik ik momenteel om via PHP (ssh2 library) mijn game servers te kunnen starten door middel van het uitvoeren van een Batch.

Ik probeer nu mijn script om te bouwen, zodat ik servers kan starten met een aangepaste commandline, in plaats van een voorgeprogrameerde commandline. Het probleem is nu dat ik het niet voor elkaar krijg om via PHP een cmd commando uit te voeren.

Het commando dat ik uit probeer te voeren is als volgt:
1START "" /MAX /REALTIME /AFFINITY 8 "C:\Servers\Deathrun\srcds.exe" -console -game garrysmod -ip 74.63.210.178 -port 27019 -maxplayers 40 +fps_max 600 -disableluarefresh +gamemode deathrun +rcon_password <removed> +exec server3.cfg +map deathrun_marioworld_final

Het punt is, als ik dit commando invoer op de server zelf, met command prompt, werkt het prima.

1C:\Users\Admin>START "" /MAX /REALTIME /AFFINITY 8 "C:\Servers\Deathrun\srcds.exe" -console -game garrysmod -ip 74.63.210.178 -port 27019 -maxplayers 40 +fps_max 600 -disableluarefresh +gamemode deathrun +rcon_password <removed> +exec server3.cfg +map deathrun_marioworld_final

Als ik via PuTTY inlog op mijn SSH, zou het alle commando's uit moeten voeren via de command line.
Het eerste probleem waar ik tegenaan loop is al het feit dat het eerste wat ik zie na het inloggen is dat het pad op "C:\Servers\Deathrun" staat.
Het tweede probleem is dat zodra ik een command uitvoer via PuTTY, het process wel gestart word, maar niet gemaximaliseerd word weergegeven, staat niet in de taskbar en in taakbeheer kan ik hem ook niet naar de voorgrond brengen. De server is echter wel te joinen door spelers, maar ik kan niet bij mij console, en kan dus ook geen commands uitvoeren.

Dan komen we vervolgens bij het PHP script, waar ik met een PHP code een server probeer te herstarten.
De code is als volgt:
1
2
3
4
5
6
7
8
9
10
11
12
<?php 
if(in_multiarray($_POST['pid'], $servers)) { 
    
$ssh->exec_cmd("taskkill /F /PID ".$_POST['pid']); 
    echo 
$ssh->get_output()."<br />"
    
$ssh->exec_cmd(str_replace("{STARTING_MAP}"$servers[$_POST['sid']]['startingmap'], $servers[$_POST['sid']]['commandline'])); 
    echo 
$ssh->get_output(); 
    
$message_green "Server ".$servers[$_POST['sid']]['windowtitle']." restarted successfully!"
}else{ 
    
$message_red "Server ".$servers[$_POST['sid']]['windowtitle']." doesn't appear to be up!"

$ssh->disconnect(); 
?>

Het vreemde is dat het taskkill command netjes uitgevoerd wordt, maar de commandline werkt niet.
Ik heb ook nog geprobeerd om voor het start commando een "cd" commando uit te voeren, om hem terug naar "C:\Users\Admin" te zetten, maar ook bij "cd" krijg ik de melding dat het commando niet kan worden uitgevoerd.

Het lijkt niet te maken te hebben met het uitvoeren van meerdere commando's, want als ik meteen begin met het "start" commando lijkt het ook niet te werken.

1
2
3
4
5
6
7
8
9
10
11
<?php 
if($servers[$_POST['sid']]['running'] == 0) { 
    
$ssh->exec_cmd(str_replace("{STARTING_MAP}"$servers[$_POST['sid']]['startingmap'], $servers[$_POST['sid']]['commandline'])); 
    echo 
$ssh->get_output()."<br />"
    echo 
str_replace("{STARTING_MAP}"$servers[$_POST['sid']]['startingmap'], $servers[$_POST['sid']]['commandline']); 
    
$message_green "Server ".$servers[$_POST['sid']]['windowtitle']." restarted successfully!"
}else{ 
    
$message_red "Server ".$servers[$_POST['sid']]['windowtitle']." doesn't appear to be up!"

$ssh->disconnect(); 
?>

Ik weet zeker dat de PHP code klopt, het enige probleem waar ik tegenaan loop is dat het SSH commando niet uitgevoerd wil worden. Ik blijf constant de volgende error krijgen:

1Unable to execute command or shell on remote system: Failed to Execute process.

Iemand enige ervaring met freeSSHd die mij de gouden tip kan geven?
pi_127824605
bump
pi_127824885
Enige reden om Windows te gebruiken ipv Linux? Mbt server zaken is er een stuk meer support voor Linux. Kan een hoop gedoe schelen.
pi_127825188
quote:
0s.gif Op zaterdag 15 juni 2013 14:23 schreef ClapClapYourHands het volgende:
Enige reden om Windows te gebruiken ipv Linux? Mbt server zaken is er een stuk meer support voor Linux. Kan een hoop gedoe schelen.
Vooral omdat de servers die wij hosten (voor garry's mod) slecht draaien op Linux.
Verder kunnen sommige gamemodes die wij gebruiken niet op linux omdat deze gemaakt zijn voor windows.
pi_127826063
quote:
0s.gif Op zaterdag 15 juni 2013 14:34 schreef MineraalWater het volgende:

[..]

Vooral omdat de servers die wij hosten (voor garry's mod) slecht draaien op Linux.
Verder kunnen sommige gamemodes die wij gebruiken niet op linux omdat deze gemaakt zijn voor windows.
Ah oke.

Dan zou ik zeggen begin vanaf het begin:
Heeft SSH de rechten om bestanden uit te voeren?
pi_127827330
quote:
0s.gif Op zaterdag 15 juni 2013 15:04 schreef ClapClapYourHands het volgende:

[..]

Ah oke.

Dan zou ik zeggen begin vanaf het begin:
Heeft SSH de rechten om bestanden uit te voeren?
Geen idee eigenlijk, Hoe kan ik dat het beste proberen?
Het rare is dat ik ook geen "cd" (change directory) kan uitvoeren.
Ik kan wel batches uitvoeren bijv: "C:\Users\admin\Desktop\Servers\Deathrun.bat".

[ Bericht 6% gewijzigd door MineraalWater op 15-06-2013 15:53:52 ]
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')