Mati010 0 Zgłoś post Napisano Wrzesień 20, 2008 Witam mam pytanie ponieważ już próbowałem 1 sposobu że jak serwer VPS padnie i włączy się to serwery same staną ale coś nie tak może ktoś mi powie co i jak w cronie zrobić bo być może źle robię. Serwery które mają wstać to: do gry Udostępnij ten post Link to postu Udostępnij na innych stronach
Linux 0 Zgłoś post Napisano Wrzesień 20, 2008 Skrypt do włączania kopiujesz do /etc/init.d (uprzednio nadając mu prawa do wykonania [chmod +x]). Następnie wykonujesz: update-rc.d Nazwa_Skryptu defaults 20 Śmiga? Udostępnij ten post Link to postu Udostępnij na innych stronach
Mati010 0 Zgłoś post Napisano Wrzesień 20, 2008 A może da się tak by skrypt był u danego użytkownika ?? bym nie musiał wszystkiego zmieniać np przez crontab -e i jakieś komendy ?? Udostępnij ten post Link to postu Udostępnij na innych stronach
Linux 0 Zgłoś post Napisano Wrzesień 20, 2008 Ehh, zbytnio nie zrozumiałem? Chodzi Ci o to żeby proces uruchamiał się z konta wybranego przez Ciebie użytkownika? //Edit, już chyba wiem ocb . Zrób dowiązanie do skryptu w home usera i tyle Udostępnij ten post Link to postu Udostępnij na innych stronach
Mati010 0 Zgłoś post Napisano Wrzesień 20, 2008 Hmm teraz też nie skapowałem zaraz pokaże o co chodzi na przykładzie janek.sh w tym: #!/bin/bash if ! ps ux|grep "serwerjanka"|grep -v grep; then cd /home/janek/; screen -d -m -S serwerjanka ./janeksvr fi potem w cronie * * * * * /home/janek/janek.sh Udostępnij ten post Link to postu Udostępnij na innych stronach
Linux 0 Zgłoś post Napisano Wrzesień 20, 2008 Dlaczego cronem? http://pl.wikipedia.org/wiki/Crontab Teraz to nie rozumiem co chcesz osiągnąć, po prostu włączanie serwera po uruchomieniu systemu czy coś więcej? Udostępnij ten post Link to postu Udostępnij na innych stronach
Mati010 0 Zgłoś post Napisano Wrzesień 20, 2008 Hmmm chodzi o to ze po padzie serwery włączą się same Udostępnij ten post Link to postu Udostępnij na innych stronach
Linux 0 Zgłoś post Napisano Wrzesień 20, 2008 Aaa mistrzu, to określaj dokładnie o co Ci chodzi bo to co opisałeś w pierwszym poście mówi o całkowicie czymś innym. Zaraz coś postaram się Ci napisać (na podstawie panelu do gry który sam piszę). // Edit - Gotowe, powinno działać (mimo że moja znajomość basha jest znikoma ). Tworzysz następujące pliki i dajesz im uprawienia odczytu i wykonania (wykonania do ustawienia.sh nie potrzeba). ustawienia.sh #!/bin/bashlogin="Login" remove="2" sleep_time="15" Odpowiednio zmienne odznaczają: login = nazwę binarki którą odpalasz + nazwę katalogu w którym się znajduję. Możesz zmienić jak chcesz . remove = liczba znaków odcinana od pliku używanego do włączenia serwera. Inaczej pgrep miał problemy z wykrywaniem procesu serwera. Noobowsko zrobione ale nie miałem czasu się tym zająć . sleep_time = co ile skrypt zasypia (czyt. co ile sprawdzane jest czy serwer jest włączony). Czas w minutach. serwer.sh #!/bin/bashsource ./ustawienia.sh odc_login=${login:0:$[ ${#login} - $remove ]} on() { ./123$odc_login-server.sh & } off() { killall 123$odc_login-server.sh killall $login } restart() { off sleep 3s on } hardoff() { killall -9 123$odc_login-server.sh killall -9 $login } case "$1" in 'on') on ;; 'off') off ;; 'restart') restart ;; 'hardoff') hardoff ;; *) echo Wybierz jedną z opcji pliku $0! echo on|off|restart|hardoff esac 123[wartość-zmiennej-login-bez-ostatnich-2-znaków-server.sh] Przykład: login=maciek 123macie-server.sh #!/bin/bashsource ./ustawienia.sh while true; do if pgrep $login &>/dev/null; then echo Ten proces juz istnieje! else cd /home/$login/jakis_tam_folder ./$login fi sleep $sleep_time done Jak to ma być skrypt działający na pojedynczym serwerze to spokojnie Ci wystarczy, jestem przekonany że nie potrzeba Ci niczego więcej. Skrypt kontrolki do włączania/wyłączania/resetowania (nie musisz tego używać) jest tylko prze zemnie edytowany, nie jestem jego autorem. Sorry za wszelkie błędy ale mój bash być słaby Edit2, mam nadzieję że chodziło o pad procesu a nie vpsa (jak zrobić to w przypadku drugim opisałem Kilka postów wyżej! Udostępnij ten post Link to postu Udostępnij na innych stronach
matt 0 Zgłoś post Napisano Wrzesień 21, 2008 Ja mam podobne pytanie, a dokladniej chodzi mi ze po restarcie serwera skrypt usera uruchamial sie na jego koncie na screnie (czyli tak jak by on wpisal sobie screen skrypt.sh) tylko aby to sie robilo automatycznie po restarcie serwera ... Jesli u gory jest to juz napisane to przepraszam ale oboje nakreciliscie i nie jestem wstanie tego zauwazyc Udostępnij ten post Link to postu Udostępnij na innych stronach
debian-sysadmin 0 Zgłoś post Napisano Październik 14, 2008 Ja mam podobne pytanie, a dokladniej chodzi mi ze po restarcie serwera skrypt usera uruchamial sie na jego koncie na screnie (czyli tak jak by on wpisal sobie screen skrypt.sh) tylko aby to sie robilo automatycznie po restarcie serwera ... Jesli u gory jest to juz napisane to przepraszam ale oboje nakreciliscie i nie jestem wstanie tego zauwazyc idea jest taka, że należy sobie zrobić setuid na odpowiedniego użytkownika na systemach debianopodobnych używa się 'sudo' - na innych pewnie też; z manuala do screen: -d -m Start screen in "detached" mode. This creates a new session but doesn’t attach to it. This is useful for system startup scripts. zatem zasadniczo mozesz sobie dopisac do /etc/rc.local (lub innego skryptu domyslnie wolanego przez mechanizm init na koncu ladowania systemu): sudo -u [DesiredUser] screen -d -m /path/to/command with parameters Udostępnij ten post Link to postu Udostępnij na innych stronach