Startscript, nach Absturz automatisch neustarten
Hallo, ich poste hier mal mein startscript:
[code]
#! /bin/bash
case "$1" in
start)
if [ -e server.pid ]; then
echo "server.pid existiert bereits";
exit 1
else
echo "Server wird hochgefahren"
if [ -e samp02Xsvr ]; then
if [ ! -x samp02Xsvr ]; then
echo "Bitte nochmal ausfuehren "
chmod u+x /home/samp02Xsvr
fi
if [ -x start.sh ]; then
./start.sh
pidof samp02Xsvr > server.pid
else
echo "start.sh existiert nicht, bitte ueberpruefen"
exit 4
fi
else
echo "Konnte start.sh nicht finden"
exit 5
fi
fi
;;
stop)
if [ -e server.pid ]; then
echo -n "Server wird runtergefahren"
if ( kill -TERM `cat server.pid` ); then
for c in $(seq 1 300); do
if [ -e server.pid ]; then
echo -n "."
sleep 1
fi
done
fi
if [ -e server.pid ]; then
echo "Server wurde nicht ordnungsgemaes runtergefahren"
kill -KILL `cat server.pid`
rm server.pid
sleep 5
else
echo "done"
fi
else
echo "server.pid nicht vorhanden, Server nicht gestartet?"
exit 7
fi
;;
restart)
;;
status)
if [ -e server.pid ]; then
echo "Der Server laeuft ordnungsgemaes."
exit 0
else
echo "Der Server lauft derzeit nicht!"
exit 3
fi
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 2
esac
exit 0
[/code]
Und zwar möchte ich dass er in regelmäßigen abständen überprüft ob die PID in der sever.pid existiert, wenn ja nichts machen, wenn nein, ./startscript restart ausführen...
Kann mir dabei jemand helfen, oder gleich eines posten, wenn das hier nicht funktionieren sollte.
[Edit Biber] Verschoben von "Linux/Unix Systemdateien" nach "IT-Sicherheit"->"Angriffserkennung und Abwehr" [/Edit]
[code]
#! /bin/bash
case "$1" in
start)
if [ -e server.pid ]; then
echo "server.pid existiert bereits";
exit 1
else
echo "Server wird hochgefahren"
if [ -e samp02Xsvr ]; then
if [ ! -x samp02Xsvr ]; then
echo "Bitte nochmal ausfuehren "
chmod u+x /home/samp02Xsvr
fi
if [ -x start.sh ]; then
./start.sh
pidof samp02Xsvr > server.pid
else
echo "start.sh existiert nicht, bitte ueberpruefen"
exit 4
fi
else
echo "Konnte start.sh nicht finden"
exit 5
fi
fi
;;
stop)
if [ -e server.pid ]; then
echo -n "Server wird runtergefahren"
if ( kill -TERM `cat server.pid` ); then
for c in $(seq 1 300); do
if [ -e server.pid ]; then
echo -n "."
sleep 1
fi
done
fi
if [ -e server.pid ]; then
echo "Server wurde nicht ordnungsgemaes runtergefahren"
kill -KILL `cat server.pid`
rm server.pid
sleep 5
else
echo "done"
fi
else
echo "server.pid nicht vorhanden, Server nicht gestartet?"
exit 7
fi
;;
restart)
status)
if [ -e server.pid ]; then
echo "Der Server laeuft ordnungsgemaes."
exit 0
else
echo "Der Server lauft derzeit nicht!"
exit 3
fi
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 2
esac
exit 0
[/code]
Und zwar möchte ich dass er in regelmäßigen abständen überprüft ob die PID in der sever.pid existiert, wenn ja nichts machen, wenn nein, ./startscript restart ausführen...
Kann mir dabei jemand helfen, oder gleich eines posten, wenn das hier nicht funktionieren sollte.
[Edit Biber] Verschoben von "Linux/Unix Systemdateien" nach "IT-Sicherheit"->"Angriffserkennung und Abwehr" [/Edit]
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 109385
Url: https://administrator.de/contentid/109385
Ausgedruckt am: 23.11.2024 um 01:11 Uhr
18 Kommentare
Neuester Kommentar
Also da müsstest ja auf CRON-Jobs zurückgreifen und dort eben stündlich, halbstündlich, wie du es willst, einstellen:
Bei stündlicher Ausführung müsstest du dieses Script nur unter /etc/cron.hourly/ einfügen und ausführbar machen. (ist jedenfalls bei den meisten Linux Systemen so.
Gruß Martin
#!/bin/bash
pidfile = "<vollständiger pfad zu deiner pid-file>"
if [ -e $pidfile] then
pid = `cat $pidfile`
result = `ps -ef | grep $pid | wc -l`
if [ $result -lt 1 ]
/etc/init.d/startscript restart
fi
fi
Bei stündlicher Ausführung müsstest du dieses Script nur unter /etc/cron.hourly/ einfügen und ausführbar machen. (ist jedenfalls bei den meisten Linux Systemen so.
Gruß Martin
Ich würds auf 0700 ändern, weil das script ja als root gestartet werden soll oder? Voraussetzung dafür ist, dass du das Script als root erstellst bzw dann mit chown root dem superuser zuteilst.
wichtig ist jedenfalls das x-Flag, welcher User es auch immer ausführen soll. Wie gesagt, das müsstest über crontab -eu <user> steuern. Schätzungsweise aber als root, daher reichts des script mit 700 Rechten ins /etc/cron.hourly verzeichnis zu kopieren, dann führt ers jede Stunde aus.
Gruß Martin
wichtig ist jedenfalls das x-Flag, welcher User es auch immer ausführen soll. Wie gesagt, das müsstest über crontab -eu <user> steuern. Schätzungsweise aber als root, daher reichts des script mit 700 Rechten ins /etc/cron.hourly verzeichnis zu kopieren, dann führt ers jede Stunde aus.
Gruß Martin
Ja, sollte so funktionieren.
Zum Testen, ob ers wirklich jede Minute als user A ausführt würd ich dann am Ende meines Scripts noch date >> <pfad wo dus hinhaben willst> schreiben, dann siehst, wann er das script ausführt.
Zeit sollte übrigens kein Problem sein, weil des Script ja relativ schnell fertig sein sollte.
Zum Testen, ob ers wirklich jede Minute als user A ausführt würd ich dann am Ende meines Scripts noch date >> <pfad wo dus hinhaben willst> schreiben, dann siehst, wann er das script ausführt.
Zeit sollte übrigens kein Problem sein, weil des Script ja relativ schnell fertig sein sollte.
Also, meines technischen Know-Hows geht das nicht, ich lasse mich allerdings gerne besserem belehren. Wie gesagt, ich habs noch nie gebraucht und auch noch nicht gelesen/gehört.
Wäre auch in den meisten Fällen verbratene Rechenleistung. Dann könnte man ja gleich im Script selbst drauf warten mit sleep <Millisekunden> z.B.
Wäre auch in den meisten Fällen verbratene Rechenleistung. Dann könnte man ja gleich im Script selbst drauf warten mit sleep <Millisekunden> z.B.
Moin grex09,
<OT>
ich kann ja bei "Linux & Unix"-"Systemdateien" nicht wirklich viel helfen, aber Dein Titel...
Könntest Du diesen Titel, wenn Du wieder im Forum sein solltest, ein bissi editieren?
Dafür wäre sehr dankbar
Biber
</OT>
<OT>
ich kann ja bei "Linux & Unix"-"Systemdateien" nicht wirklich viel helfen, aber Dein Titel...
Startscript, wenn server absützt automitsch staten
erscheint mir -wohlgemerkt als Laie- doch ein wenig optimierbar für unsere Forumssuch-Funktion bzw. UserInnen mit ähnlichen Problemen.Könntest Du diesen Titel, wenn Du wieder im Forum sein solltest, ein bissi editieren?
Dafür wäre sehr dankbar
Biber
</OT>
<Nu' aber voll OT>
Hmmmmmmmmm, Grex09,
ich versuche mal, laaaaaangsam einen Verbesserungsvorschlag herzuleiten:
Dazu werden (außer Deinem Beitrag) auch unter anderem dieser Thread auf der Seite www.aiqum.de gefunden:
Jahaa....... das Thema "weibliche Brust absützen" hat mich zwar auch immer schon irgendwie interessiert.
Aber bei den genannten Sprachakrobaten geht es - ich zitiere (und habe mich beim Lesen fast eingenässt) um:
Wer solche Ziele wie "Abnehmen über Abnehmen" über solche Wege formulieren kann, verfügt sicherlich über eine ziemlich geradlinige und unkomplizierte Denkweise, aber, um auf das eigentliche Thema "absützen" zurückzukommen:
Ich kann mir NICHT vorstellen, dass Dein Server so etwas macht!
.... aber okay, ich bin auch kein Unix-Guru....
Mehr Tipps gebe ich aber erstmal nicht zum Thema Titel-Editieren....
Grüße
Biber
</Nu' aber voll OT>
Hmmmmmmmmm, Grex09,
welche Titel sollte ich denn nenne ?
Dieser Karneval macht mich jedes Jahr fertig... allein diese Sprache....*seufz*ich versuche mal, laaaaaangsam einen Verbesserungsvorschlag herzuleiten:
[Dein jetziger Titel]
Zu dem mir nicht geläufigen Fachterminus "absützt" habe ich eine der bekannteren Suchmaschinen bemüht.Startscript, wenn server absützt automitsch staten
Dazu werden (außer Deinem Beitrag) auch unter anderem dieser Thread auf der Seite www.aiqum.de gefunden:
Es gibt 2 Threads dazu........Bauchmuskeln und weibliche Brust. Bei der weiblichen Brust gibt es eine Übung bei der man seitlich liegt und sich absützt, das wäre z.B. etwas für dich.
Quelle: Forum aiqum.deJahaa....... das Thema "weibliche Brust absützen" hat mich zwar auch immer schon irgendwie interessiert.
Aber bei den genannten Sprachakrobaten geht es - ich zitiere (und habe mich beim Lesen fast eingenässt) um:
Dauerhaft abnehmen über gesundes Abnehmen sollte das Ziel heißen - und das ist exakt die Kunst, die AIQUM perfekt beherrscht!
Quelle: Abnehmen leicht schnell abnehmen warum abnehmen ]Wer solche Ziele wie "Abnehmen über Abnehmen" über solche Wege formulieren kann, verfügt sicherlich über eine ziemlich geradlinige und unkomplizierte Denkweise, aber, um auf das eigentliche Thema "absützen" zurückzukommen:
Ich kann mir NICHT vorstellen, dass Dein Server so etwas macht!
.... aber okay, ich bin auch kein Unix-Guru....
Mehr Tipps gebe ich aber erstmal nicht zum Thema Titel-Editieren....
Grüße
Biber
</Nu' aber voll OT>
Wer einen Cron mit * * * * * (also WIRKLICH jede Minute!) ausführt, der ist bißchen pervers veranlagt...
Wie wäre es, anstelle den Server zu quälen, ein anständiges Programm/Script zu schreiben, daß nicht andauernd abstürzt?
Aber das ist nur meine bescheidene Meinung, ich war mal so frei, einen anderen Spezialisten auf diesem Gebiet zu konsultieren...
(meldet sich hier vielleicht auch noch mal zu Wort...)
Lonesome Walker
Wie wäre es, anstelle den Server zu quälen, ein anständiges Programm/Script zu schreiben, daß nicht andauernd abstürzt?
Aber das ist nur meine bescheidene Meinung, ich war mal so frei, einen anderen Spezialisten auf diesem Gebiet zu konsultieren...
(meldet sich hier vielleicht auch noch mal zu Wort...)
Lonesome Walker
Ich sehe nicht, dass dich hier irgendwer als Idiot dargestellt hat; es ging wohl um deine Rechtschreibfehler.
Was heisst hier, dass jemand einen Crashcode sendet?
Wenn es moeglich ist, dass dir jemand mit einem Exploit den Server abschiesst, dann ist nicht ein Autoreboot script - was als Funktion sowieso in den meisten *nix systemen vorhanden ist - das Mittel der Wahl, sondern sein Betriebssystem zu patchen und den Angreifer auszusperren.
Dann verstehe ich auch nicht das ganze herumgecode. Du hast einen Linux SA-MP Gameserver laufen und der bringt bereits alle Skripte mit, die du benoetigst um das gute Stueck Online zu halten; in diesem Fall mit
Die restart.sh sieht so aus:
Wie du siehst braucht es dazu keinen cronjob.
Weitere Skripte in der Gebrauchsanweisung
Der Thread gehoert nach Angriffserkennung und Abwehr verschoben.
Saludos
gnarff
Was heisst hier, dass jemand einen Crashcode sendet?
Wenn es moeglich ist, dass dir jemand mit einem Exploit den Server abschiesst, dann ist nicht ein Autoreboot script - was als Funktion sowieso in den meisten *nix systemen vorhanden ist - das Mittel der Wahl, sondern sein Betriebssystem zu patchen und den Angreifer auszusperren.
Dann verstehe ich auch nicht das ganze herumgecode. Du hast einen Linux SA-MP Gameserver laufen und der bringt bereits alle Skripte mit, die du benoetigst um das gute Stueck Online zu halten; in diesem Fall mit
nohup ./restart.sh &
Die restart.sh sieht so aus:
#!/bin/sh
log=samp.log
dat=`date`
samp="/path/to/samp/server/samp02Xsvr"
cd /path/to/samp/server
echo "${dat} watchdog script starting." >>${log}
while true; do
echo "${dat} Server exited, restarting..." >>${log}
mv /path/to/samp/server/server_log.txt /path/to/samp/server/logs/server_log.`date '+%m%d%y%H%M%S'`
${samp} >> $log
sleep 2
done
Wie du siehst braucht es dazu keinen cronjob.
Weitere Skripte in der Gebrauchsanweisung
Der Thread gehoert nach Angriffserkennung und Abwehr verschoben.
Saludos
gnarff
<OT III>
Moin grex09,
ich habe den Beitrag jetzt verschoben nach "Angriffserkennung und -abwehr" wie von gnarff vorgeschlagen.
Und um eventuellen Missverständnissen vorzubeugen:
Ich wollte zu keinem Zeitpunkt zum Ausdruck bringen, dass ich Dich für nicht lernfähig halte.
Als pingeliger und hanseatisch-biederer, ordnungsliebender und humorloser unterkühlter Bremer konnte ich an der (ursprünglichen) Beitragsüberschrift nicht vorbeigehen.
Ich weiß nicht, ob Du den Loriot-Sketch "Das Bild hängt schief..." kennst?
Egal - meine OT-Kommentare weiter oben sollten jedenfalls keine Beleidigung und kein persönlicher Angriff sein.
So, genug offgetopict für heute - schönes Wochenende allen
Biber
</OT III>
Moin grex09,
ich habe den Beitrag jetzt verschoben nach "Angriffserkennung und -abwehr" wie von gnarff vorgeschlagen.
Und um eventuellen Missverständnissen vorzubeugen:
Ich wollte zu keinem Zeitpunkt zum Ausdruck bringen, dass ich Dich für nicht lernfähig halte.
Als pingeliger und hanseatisch-biederer, ordnungsliebender und humorloser unterkühlter Bremer konnte ich an der (ursprünglichen) Beitragsüberschrift nicht vorbeigehen.
Ich weiß nicht, ob Du den Loriot-Sketch "Das Bild hängt schief..." kennst?
Egal - meine OT-Kommentare weiter oben sollten jedenfalls keine Beleidigung und kein persönlicher Angriff sein.
So, genug offgetopict für heute - schönes Wochenende allen
Biber
</OT III>