• [Linux] Auto restart altis life


    J’ai juste améliorer ce tuto et pas qu’un petit peu :) !

    https://altisdev.com/topic/8379/reboot-automatique-sous-linux/2

    Bon on commence direct je vais vous donner mon script
    OUI IL EST DE MOI, NE DEMANDEZ PAS LA SOURCE !
    Et oui j’écris mes scripts en anglais car je les fait tourner sur beaucoup de forum !

    Ah oui il faut savoir que ce tuto sera 100% opérationnelle si vous avez fait la même installation que moi :) sinon ça marchera aussi mais vous devrez un peu plus réfléchir et vous devrez un peut toucher au script de démarrage
    Mon tuto d’install :
    https://altisdev.com/topic/7956/linux-faire-un-serveur-altislife-sur-linux-de-version-4-5

    BREF !

    Ce script fait :
    -Démarrage
    -Arrêt
    -Redémarrage
    Si vous faite un redémarrage quand il n’est pas lancé il le lancera tout seul :) MAGIQUE !

    allez dans /home/arma3 créee un fichier nommé le : arma-srv.sh
    collez tout ça dedans :

    #!/bin/bash
    ### BEGIN INIT INFO
    # Provides:          Voyza
    # Required-Start:    networking
    # Required-Stop:     networking
    # Default-Start:     2 3 4 5
    # Default-Stop:      0 1 6
    # Short-Description: ARMA Server Script
    # Description:       ARMA Server Script used to manage the server
    #
    ### END INIT INFO
    
    # Global variables
    USERNAME="arma3"
    SERVICENAME="arma3server"
    ARMAPATH="/home/arma3/arma3"
    SERVICE="arma3server"
    #INVOCATION="$ARKPATH/$SERVICE -profiles=logs -config=server.cfg -cfg=basic.cfg "-mod=@life_server;@extDB2""
    INVOCATION="$ARMAPATH/$SERVICE -profiles=logs -config=server.cfg -cfg=basic.cfg '-mod=@life_server;@extDB2'"
    RCONBIN="/home/arma3/arma3/scripts/rcon"
    RCONPWD="PASSWORD"
    ARKIP="127.0.0.1"
    RCONPORT="32330"
    
    
    # MAIN SCRIPT
    ME=`walter`
    as_user() {
      if [ "$ME" == "$USERNAME" ] ; then
        bash -c "$1"
      else
        su - $USERNAME -c "$1"
      fi
    }
    
    arma_start() {
      if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
      then
        echo "Tried to start but $SERVICENAME was already running!"
      else
        echo "$SERVICENAME was not running... starting."
        cd $ARMAPATH
        as_user "cd $ARMAPATH && screen -dmS $SERVICENAME $INVOCATION"
        sleep 2
        if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
        then
          echo "$SERVICENAME is now running."
        else
          echo "Could not start $SERVICENAME."
        fi
      fi
    }
    
    
    arrma_stop() {
            if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
            then
                    echo "$SERVICENAME is running... stopping."
                                    sleep 5
                                    kill -s INT $(ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE | awk '{print $1}')
                                    sleep 25
            else
                    echo "$SERVICENAME was not running."
            fi
            if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
            then
                    echo "$SERVICENAME could not be shut down... still running."
            else
                    echo "$SERVICENAME is shut down."
            fi
    }
    
    
    #Start-Stop here
    case "$1" in
      start)
        arma_start
        ;;
      stop)
        arma_stop
        ;;
      restart)
        arma_stop
        sleep 5
        arma_start
        ;;
      status)
        if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
        then
          echo "$SERVICENAME is running."
        else
          echo "$SERVICENAME is not running."
        fi
        ;;
      *)
      echo "Usage: /home/arma3/arma3/scripts/armasrv.sh {start|stop|restart|status}"
      exit 1
      ;;
    esac
    
    exit 0
    

    HOP HOP c’et pas fini ! Met ce fichier en permissions 777 !

    bon très bien maintenant que ça c’est fait essayé le :) enfin si vous voulez

    Pour l’essayer en root mais je te le conseil pas !
    T’inquiète pas c’est la même commande si t’as suivi mon tuto est que tu te met avec l’utilisateur arma3
    tu te connecte sur ton SSH
    tu peu essayer ces 4 commandes je te laisse deviner a quoi chacune serve X) :

    /home/arma3/arma-srv.sh start
    
    /home/arma3/arma-srv.sh stop
    
    /home/arma3/arma-srv.sh restart
    
    /home/arma3/arma-srv.sh status
    

    Bon maintenant que tu as essayer et que tout marche nickel on peu passer au choses sérieuse !

    Tout va se faire a partir de maintenant sur ton SSH (putty… ce que tu veux t’est grand !)

    Déjà si c’est pas fait tu te connecte

    Bien-sûr tout ce qu’on va faire la c’est pas en root mais avec l’utilisateur arma3
    Moi j’écris arma3 mais je sais pas comment le tiens s’appelle !

    su arma3
    

    commence pas savoir si ta machine est a la bonne heure X)

    la tu tape

    date
    

    Bon si t’est a la bonne heure c’est parfait sinon va la :
    http://www.tux-planet.fr/changer-la-date-et-lheure-sous-linux/

    Bon maintenant que t’est a la bonne heure
    tu fait

    apt-get install nano
    

    Ba oui t’est marrant toi comment je peu savoir si tu l’as déjà ?!

    Bon la tu definie nano de base !

    echo “export EDITOR=nano” >> ~/.bashrc
    

    ensuite la suite !
    tu fait

    crontab -e
    

    ça t’ouvre sa :

    # Edit this file to introduce tasks to be run by cron.
    # 
    # Each task to run has to be defined through a single line
    # indicating with different fields when the task will be run
    # and what command to run for the task
    # 
    # To define the time you can provide concrete values for
    # minute (m), hour (h), day of month (dom), month (mon),
    # and day of week (dow) or use '*' in these fields (for 'any').# 
    # Notice that tasks will be started based on the cron's system
    # daemon's notion of time and timezones.
    # 
    # Output of the crontab jobs (including errors) is sent through
    # email to the user the crontab file belongs to (unless redirected).
    # 
    # For example, you can run a backup of all your user accounts
    # at 5 a.m every week with:
    # 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
    # 
    # For more information see the manual pages of crontab(5) and cron(8)
    # 
    # m h  dom mon dow   command
    

    Et toi a la fin tu rajoute :

    0 0 * * * /home/arma3/arma-srv.sh restart
    0 6 * * * /home/arma3/arma-srv.sh restart
    0 12 * * * /home/arma3/arma-srv.sh restart
    0 18 * * * /home/arma3/arma-srv.sh restart
    

    Avec ça tu restart toutes les 6 heures !

    Et ça te donne :

    # Edit this file to introduce tasks to be run by cron.
    # 
    # Each task to run has to be defined through a single line
    # indicating with different fields when the task will be run
    # and what command to run for the task
    # 
    # To define the time you can provide concrete values for
    # minute (m), hour (h), day of month (dom), month (mon),
    # and day of week (dow) or use '*' in these fields (for 'any').# 
    # Notice that tasks will be started based on the cron's system
    # daemon's notion of time and timezones.
    # 
    # Output of the crontab jobs (including errors) is sent through
    # email to the user the crontab file belongs to (unless redirected).
    # 
    # For example, you can run a backup of all your user accounts
    # at 5 a.m every week with:
    # 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
    # 
    # For more information see the manual pages of crontab(5) and cron(8)
    # 
    # m h  dom mon dow   command
    0 0 * * * /home/arma3/arma-srv.sh restart
    0 6 * * * /home/arma3/arma-srv.sh restart
    0 12 * * * /home/arma3/arma-srv.sh restart
    0 18 * * * /home/arma3/arma-srv.sh restart
    

    Voila c’est fini !

  • Ah oui et je vous laisse le droit de modifier le script à volonté :) c’est cadeau

    0 18 * * * /home/arma3/arma-srv.sh restart
    

    je vous explique ça vite fait !
    le premier 0 c’est des minute
    le 18 c’est l’heures
    ’* * *’ c’est mois années secondes je crois mais on s’en fou des '
    /home/arma3/arma-srv.sh restart
    t’y a compris c’est ta commande

    en gros avec

    0 18 * * * /home/arma3/arma-srv.sh restart
    

    tout les jours à 18h ton serv restart

  • Désolé pour ce petit-up, mais j’étais entrain de regarder et ne comprends pas une chose dans ton script, pourquoi tu fais un appel au RCON? C’est complétement inutile sachant que c’est un script de redémarrage et que, qui plus est, le RCON se définie dans server.cfg / beserver.cfg… :thinking:

  • Ce script je l’avais fait y as longtemps pour un autre jeu ou il fallait le Rcon donc c’est rester dans tout les cas RCON ou pas il est pas utiliser dans le script alors 100% fonctionnel :)

  • Pour Cron pas besoin de 4 execution.

    0 */6 * * * /home/arma3/arma-srv.sh restart
    

    Avec ça, l execution se fait toutes les 6 heures.

  • @Steez j’utilise pas le rcon mais les crontab de linux …

    @brutalzic Yo il y as plein de manière différente de le faire j’imagine moi je propose celle la car je la connais :)
    mais merci pour l’info je savais pas

  • Bonjour, j’ai cette erreur “
    arma3@117149HD012149:~$ /home/arma3/arma-srv.sh start
    bash: /home/arma3/arma-srv.sh: /bin/bash^M: bad interpreter: No such file or directory

    Un recommandations pour la régler ?

  • @e-max_ a dit dans [Linux] Auto restart altis life :

    No such file or directory

    C est claire : No such file or directory

  • @brutalzic a dit dans [Linux] Auto restart altis life :

    No such file or directory

    Même quand j’execute la commande depuis le fichier en faisant ./arma-srv.sh start
    C’est toujours pareil

    arma3@117149HD012149:~$ ls
    arma3  Arma3.cfg  arma-srv.sh  steam  Steam
    arma3@117149HD012149:~$ ./arma-srv.sh
    bash: ./arma-srv.sh: /bin/bash^M: bad interpreter: No such file or directory
    arma3@117149HD012149:~$
    
  • @e-max_ a dit dans [Linux] Auto restart altis life :

    /bin/bash^M: bad interpreter:

    Tu n’as pas BASH

    sudo apt install bash
    sudo pacman -Syu bash

  • Effectivement, merci, mais maintenant, ceci apparaît !

    
    root@117149HD012149:/home/arma3# ./arma-srv.sh stop
    ./arma-srv.sh: line 27: walter: command not found
    ./arma-srv.sh: line 80: arma_stop: command not found
    
  • tu devrai cité dans ton topic le l’encodage du fichier car linux peut avoir des confusion avec l’encodage windows , on peut installer le packet dos2unix afin d’y remedier a la barbare ^^

    apt-get install dos2unix
    

    puis se rendre dans le repertoire et faire

    dos2unix ./script.sh
    
  • Justement, c’est ce que j’ai fais

  • essaie de repartir de 0 ta peu etre foirée a un endroit. après je n’ai pas testé le script car avec LGSM les fonction sont deja créer et j’ai juste a appliqué mes Cron pour les reboot

  • # MAIN SCRIPT
    ME=`walter`
    as_user() {
      if [ "$ME" == "$USERNAME" ] ; then
        bash -c "$1"
      else
        su - $USERNAME -c "$1"
      fi
    }
    

    Le ME ses ton utilisateur aussi …

  • @Zomblard Malgré certaines erreurs il est selon moi nécessaire de te remercier pour le travail que tu as fournis et du temps que tu as passé à faire ce travail car je pense que pas mal de personne saute cette étape.

  • @papybrossard a dit dans [Linux] Auto restart altis life :

    @Zomblard Malgré certaines erreurs il est selon moi nécessaire de te remercier pour le travail que tu as fournis et du temps que tu as passé à faire ce travail car je pense que pas mal de personne saute cette étape.

    En plus par rapport a beaucoup d’autre tuto c’est très propre.

    HOP HOP c’est pas fini ! Met ce fichier en permissions 777 !

    HOP HOP la sécurité ? :open_mouth:
    Bon c’est pas un serveur de la CIA mais 777 c’est tout de même a proscrire :)

Messages 18Vues 2082