Forum > Kącik Linuksa i Androida > Automatyczne uruchamianie usług

Strona 1 z 1 1
skocz

Pustack

Wysłane 2014-11-10 13:18

Witam

Mam pytanie może pomożecie, bo już denerwuje mnie obecny VPS w mintshost. Ciągle co praktycznie miesiąć pada VPS i muszę ręcznie startować usługi http i serwer ts3.

Czy da się to zautomatyzować czyli jak padnie serwer i np usługa zatrzyma się lub zcrashuje to może serwer sam ją odpalić? Dzisiaj znowu wszystko padło a jestem w pracy w domu loguje sie po kluczu ssh a hasła nawet zapomniałem dla roota czy innych użytkowników to nawet nie moge postawić tego spowrotem na nogi.

I zastanawiam się czy zmieniać hosting czy jeszcze się zatrzymać o ile da sie to zautomatyzować bo przyznam że jest to bardzo denerwujące. Od kilku miesięcy bodajże 5 czy 6 zawsze ale to zawsze co miesiąć dzieją się takie rzeczy. Dużo mogę zrozumieć ale jestem już u kresu wytrzymałości. Trzymały mnie w miare atrakcyjne ceny ale jeżeli ma się dziać to co się dzieje to na poważnie rozważam zmianę....

skatan

  • skatan
  • wiadomość Użytkownik

  • 1721 wypowiedzi

Wysłane 2014-11-10 15:29 , Edytowane 2014-11-10 15:39

znalazłem
[LINK]

do przerobienia trochę bo porty raczej nie są potrzebne
a dokładniej usunąć
pętlę z portami
i=0
for n in ${SERVICE_PORT[@]}
do

a resztę wrzucić w pętlę while 1<2  ( żeby cały czas skrypt działał )

na końcu każdej pętli dodać sleepa co jaki czas ma kolejny przebieg ruszyć
i tam dodajesz sobie co ma się uruchomić jak procesu nie będzie

serwer pod linem ?
???

szczur3k

Wysłane 2014-11-10 16:14

Ale po co sobie utrudniać? Prosty skrypt sprawdzający czy usługa działa i w razie negatywnego wyniku startujący ową usługę + cron odpalający skrypt powiedzmy co minutę i bangla.

Gentoo

Pustack

Wysłane 2014-11-10 18:04

Tak serwer pod linuxem

Przyznam bez bicia ,że podstawy programowania to ostatnio to miałem w technikum a później już nic więc sam skryptu to nie napiszę :)

Możecie chociaż jakiś tutorial zarzucić i powiedzieć co gdzie wrzucić w sensie gdzie plik umieścić?

Bo chodzi mi o to aby uruchamiało programy z określonej lokacji jako określony użytkownik i ew. sprawdzało czy działa. Żeby to by był windows to tam do autostartu bym wrzucił i przy restarcie by furneło wszystko na nogi a tak to trochę trzeba się namęczyć

szczur3k

Wysłane 2014-11-12 11:18 , Edytowane 2014-11-12 11:53

Rozumiem, że chcesz sprawdzać jakąś konkretną usługę i odpalać ją w razie wysypki? W skrypcie sprawdzającym możesz za pomocą ifa i ps sprawdzić czy program jest załadowany do pamięci, mniej więcej tak jak skrypcie z Twojego pierwszego posta. Sam skrypt może też odpalić usługę za pomocą /etc/init.d, czy systemctl (jeśli system jest weń wyposażony). Co z tych rzeczy jest dla Ciebie problemem?

Co do tego, gdzie plik umieścić: na koncie użytkownika który ma uruchamiać usługi odpalasz polecenie crontab -e, w otwartym pliku definiujesz co i kiedy odpalić:

* * * * * /polecenie/do/wykonania

Gwiazdki po kolei to minuta, godzina, dzień miesiąca, miesiąc, dzień tygodnia. Czyli np:

00 12 * * * - codziennie w południe
15 23 1 * * - pierwszego dnia każdego miesiąca o 15:23
* */2 * * 1-5 - od poniedziałku do piątku co dwie godziny

Czyli gdybyś chciał odpalić sprawdzanie co 5 minut niezależnie od dnia musiałbyś dać:

*/5 * * * *

Do tego jak napisałem wyżej, skrypt sprawdzający i ew. delegowanie uprawnień przez sudo  i powinno śmigać.



Gentoo

Pustack

Wysłane 2014-11-12 15:24 , Edytowane 2014-11-12 15:48

Dzięki bardzo szczur3k

znalazłem tez coś takiego


#!/bin/sh
# Automatically restarts a TeamSpeak3 Server once it has crashed.
# Required init.d integration of the Server
 
# Author : Maximilian Narr
# Homepage : devmx.de
# eMail : maxe.nr@live.de
 
# Adapt it to your path where the TS3 Server is located.
cd /home/ts3/teamspeak3-server_linux-x86
 
if [ -e ts3server.pid ]
then
if ( !(kill -0 $(cat ts3server.pid) 2> /dev/null) )
then
# Start command
sh /home/tsserver/ts3server_startscript.sh start
fi
else
# Start command
sh /home/tsserver/ts3server_startscript.sh start
fi



Aktualnie wrzuciłem skrypt do /etc/init.d/ odpaliłem go ręcznie

potem crontab -e

i
*/1 * * * * /etc/init.d/(nazwa skryptu)

Rozumiem że powinno banglać? Chętnie bym sprawdził ale na serwerze siedzą osoby

szczur3k

Wysłane 2014-11-12 17:44

Nie jestem przekonany co do wrzucania go do init.d, i nie wiem też do końca czy */1 zadziała, daj może zamiast tego 0-59.

Gentoo

Pustack

Wysłane 2014-11-12 17:56 , Edytowane 2014-11-13 12:20

Nie jestem przekonany co do wrzucania go do init.d

A dlaczego? To gdzie mogę wrzucać skrypty żeby je automatycznie uruchamiało przy restarcie vps?


nie wiem też do końca czy */1 zadziała, daj może zamiast tego 0-59

dałem już

EDIT

Skrypt się uruchamia idealnie a ustawiłem na 2min.



Pytanie: Czy zadanie w crontabie jest ustawione ciągle nawet po restarcie maszyny? Czy po restarcie trzeba je znowu wpisać?

EDIT 2

Ok już wiem że wszystko działa dzięki bardzo panowie za pomoc :)

Strona 1 z 1 1
skocz

Kto jest online: 0 użytkowników, 476 gości