Neustart des Webservers über eine Website

Status
Für weitere Antworten geschlossen.

dotspot_info

Benutzer
Mitglied seit
13. Nov 2008
Beiträge
26
Punkte für Reaktionen
0
Punkte
1
Hallo allerseits

Ich suche nach einer Möglichkeit meinen Webserver aus einer darauf laufenden Website neu zu starten, in etwa so wie man es vielleicht vom Plesk oder anderem bereits kennt.

Folgendes habe ich bereits versucht:
- exec eines Befehls per PHP -> exec über php scheint nicht zu funktionieren...
- exec eines Befehls mit perl -> funktioniert so weit.
- Da der Webserver nicht als root läuft brauche ich eine Möglichkeit diesen als User neu zu starten. Ich habe mir mit C ein kleines Programm geschrieben welches mir den Server neu startet und es mit dem setUID bit versehen (4555)
- obiges erlaubt mir den Server als User neu zu starten. -> Funktioniert im Terminal.
- Wenn ich das Teil auf dem Webserver ausführe mit dem Perl-Script (mit exec) wird der Webserver beendet, jedoch nicht neu gestartet da das Programm allem Anschein gleich mit beendet wird.

Hat jemand eine Anregung oder Idee?

Grüsse
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Das Programm läuft ja innerhalb des Serverprozesses. Wird der gekillt, dann wird wohl auch dein Script gekillt.
Du könntest probieren, das via dem Systemapache zu machen. Dann solltest du den Userapache via Script beenden können, denn der Server, welcher das Script ausführt läuft ja weiterhin
 

dotspot_info

Benutzer
Mitglied seit
13. Nov 2008
Beiträge
26
Punkte für Reaktionen
0
Punkte
1
Danke für die Antwort.

Ja vermutlich würde das funktionieren. Da habe ich jedoch ein Problem:
Ich habe auf die schnelle noch nicht heraus gefunden wo sich dieser Apache überhaupt befindet.
Weisst Du wo ich meine Dateien dafür hinkopieren muss?
 
Zuletzt bearbeitet:

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
"Dieser" Apache läuft auf Port 5000 resp 5001 für https. Schau mal welchen DocumentRoot die 3rd Party Apps benutzen, dort müsste wohl auch dein Script rein (bin mir nicht mehr sicher wo genau er liegt ;) )
 

dotspot_info

Benutzer
Mitglied seit
13. Nov 2008
Beiträge
26
Punkte für Reaktionen
0
Punkte
1
Danke Du hast mir sehr weiter geholfen :)
Es klappt nun.
So zur Info falls es mal wer braucht: das root verzeichnis des System-Apache befindet sich unter /usr/syno/synoman/

vielen Dank und Grüsse
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Folgendes habe ich bereits versucht:
- exec eines Befehls per PHP -> exec über php scheint nicht zu funktionieren...

der exec() funktioniert bei mir tadellos

- Da der Webserver nicht als root läuft ...

der erste Prozess des Apache-Web-Servers läuft immer unter 'root'; alles daraus gestarteten Prozessen sollen gezielt unter einer anderen Identität gestartet werden. In der httpd.conf-user steht das als Konfigurationseintragung wie folgt drinne:

Rich (BBCode):
<IfModule !mpm_netware_module>
#
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
User nobody
Group nobody
</IfModule>

So recht verstehe ich es nicht, warum der User-Apache neu gestartet werden soll ... vielleicht kannst du ja dazu mal etwas mehr erläutern

Itari
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat