Toon posts:

[Screen] Screen exec'en vanaf webpage wil niet

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig met een control panel voor mijn klanten, Apache 1.3.37, php430....

Ik gebruik het volgende script om normaal gesproken de server te restarten:

code:
1
2
3
4
5
6
7
8
#!/bin/sh
#

screen -X -S iwan quit


cd /home/iwan/hlds_l
screen -A -m -d -S iwan ./hlds_run -game cstrike +exec server.cfg ***********************


Deze scripts staan per user onder /home/scripts/<USER>.sh
Nu heb ik mn dbase de users ingeklopt en een phppagina geschreven:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?
session_start();
connect();
$logged = $_SESSION["logged"];
$pagina = "gamecontrol";
$query_check_status = mysql_query("SELECT status_required,pagina FROM access WHERE pagina = '$pagina' LIMIT 1")or die("Fout met db..");
// Array beginnend bij 0  [0 = status_required, 1 = pagina]
$status_required_db = mysql_fetch_row($query_check_status);


$user = $_SESSION['logged']['0'];

//echo ($user);

$query = mysql_query("SELECT ip FROM login WHERE username = '$user'");
$ipuser = mysql_fetch_object($query);



?>

Hallo <? echo($user); ?>,<BR><BR>
Je gameserver is nu gerestart. Je kunt de volgende restart pas over 5 minuten uitvoeren!<br><br>

<?
echo("$user , $ipuser->ip"); ?>
<BR>
<BR>
<?
system ("/home/scripts/".$user.".sh");
?>


Maar ik blijf telkes de volgende melding op de webpage terugkrijgen:

code:
1
No screen session found.


terwijl als ik de scripts met SSH uitvoer via mn root-account dan stopt tie netjes de server en start een nieuwe....Maar op de webpage zegt hij dus gortdroog dat hij hem niet kan vinden (de screensessie)

De files zijn 771 gechmod, en Apache kan ze dus ook exec'en. Dus wat doe ik fout?

Verwijderd

Emh, ik weet niet zo veel over php, maar als jij de permissies 771 zet, waarvoor zou je dat doen? Je kan ze ook op 600 zetten bij wijze van spreken en chownen op de user waar de webserver onderrunt. Bijvoorbeeld www-data...

Verwijderd

Topicstarter
op zich is dat nog niet het probleem denk ik, het execcen enzo werkt wel, deze chmod doe ik even om fouten te voorkomen :)

Maar ik kom dus niet uit dat gezeur met screen...Dat is het hele gedoe op dit moment. Als me dat lukt dan ben ik al een heel eind :)

Verwijderd

Topicstarter
kleine kick, iemand ervaring met screen en hoe dit komt?

  • Haranaka
  • Registratie: September 2000
  • Laatst online: 19:25
Zou het probleem niet kunnen liggen aan dat je nu met de user die apache draait die hlds servers wil starten? En dat je apache user dus geen rechten heeft om hlds te runnen?

...


  • PowerSp00n
  • Registratie: Februari 2002
  • Laatst online: 17-11-2025

PowerSp00n

There is no spoon

code:
1
2
> screen -X -S iwan quit
No screen session found.


Dat geeft screen dus als een session niet bestaat. Sessions zijn per user gescheiden, jij zult die screen session vanuit een andere user starten (van apache). Ergens in die richting zul je het moeten gaan zoeken denk ik (ik weet ook niet alles van screen enzo).

Ik had laatst het probleem dat je een session niet kan attachen als je met su naar een andere user bent gegaan. Je zult dan ook echt met die user moeten inloggen voordat je een session kunt attachen. Hmm niet echt helemaal duidelijk maar ok :)

Verwijderd

Dat is idd het probleem. Om aan ne screen te kunnen van een bepaalde user moet ge als die user ingelogd zijn ( su'en is zelfs niet voldoende ).
Hoe je dat omzeilt weet ik eerlijk gezegd ook niet.

Verwijderd

Topicstarter
erm minder prettig :( alhoewel misschien heb ik dan een optie, ff kijken momentje :)

ok nee dus :(

dit is wel heel irritant, zijn er anders andere utilities dan screen waarmee ik hetzelfde kan bereiken maar de boel wel vanaf een andere user kan managen?

[ Voor 52% gewijzigd door Verwijderd op 20-02-2003 16:27 ]


Verwijderd

Waarom schrijf je geen bash script voor deze taken? Je kan de shell van die user dan instellen als dat bashscript, dan kan ie er niet uit :)

  • Eärendil
  • Registratie: Februari 2002
  • Laatst online: 00:46
Je moet screen suid-root draaien. Je kan dan met het commando "multiuser on" naar multiuser modus. Dan kan je met "acladd username" een gebruiker toegang tot screen geven. Je moet dan ipv
code:
1
screen -X -S iwan quit
het volgende doen:
code:
1
screen -X -S oudeuser/iwan quit

Zie ook de User Manual: http://www.sunsite.ualber...apter/screen_8.html#SEC25

Wat doe je eigenlijk als screen om een of andere reden gekilld is? En heb je ook een script om screen te starten, want ik heb nog niet gevonden hoe ik screen kan starten en meteen weer kan detachen in een shellscript.

[ Voor 24% gewijzigd door Eärendil op 20-02-2003 19:43 ]


Verwijderd

Eärendil schreef op 20 February 2003 @ 19:35:
En heb je ook een script om screen te starten, want ik heb nog niet gevonden hoe ik screen kan starten en meteen weer kan detachen in een shellscript.
Dat is gewoon screen -d :)

  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 23:57

deadinspace

The what goes where now?

Is het niet eenvoudiger om een screen te starten, en in die screen "while true; do hlserver; sleep 1; done" te doen? Je kunt dan vanuit php "killall hlserver" doen, wat je HL server afsluit. Even later wordt automatisch een nieuwe gestart.
Je moet alleen die killall wel uitvoeren als de user die de HL server draait, maar dat is met sudo wel goed te breien.

  • Eärendil
  • Registratie: Februari 2002
  • Laatst online: 00:46
Verwijderd schreef op 20 February 2003 @ 19:52:
[...]
Dat is gewoon screen -d :)
Die werkt niet, dan moet je eerst al een screen hebben. Ik -dmS werkt wel. Dat had ik al geprobeerd maar toen werkte de gameserver niet goed.

Verwijderd

Eärendil schreef op 20 February 2003 @ 20:34:
[...]

Die werkt niet, dan moet je eerst al een screen hebben. Ik -dmS werkt wel. Dat had ik al geprobeerd maar toen werkte de gameserver niet goed.
Ik gebruik dat altijd en ik heb nog nooit problemen gehad met die gameservers :)

  • Eärendil
  • Registratie: Februari 2002
  • Laatst online: 00:46
Werkt ook bij mij ook wel, maar alleen met extra opties (bijv. -mS) want anders zegt ie:
"There is no screen to be detached matching". Ik zocht iets waarmee je zonder dat er al een screensessie draait met een commando een nieuwe server kan starten, maar dat heb ik nu gevonden

neographikal: werkt het al?

[ Voor 8% gewijzigd door Eärendil op 20-02-2003 21:26 ]

Pagina: 1