Файлы .sh

Саша707

Последний из атеистов
Участник
Сообщения
82
Розыгрыши
0
Репутация
0
Реакции
10
Баллы
850
Хроники
  1. Chaotic Throne: High Five
Исходники
Отсутствуют
Сборка
High Five
Всем привет подскажите что должен содержать в себе файл startLoginServer.sh и startGameServer.sh они в меня практически пустые и не запускаются. Как настроить на запуск на linux все настроил но файлы не запускаются.
1682769386704.png
 
Запускаем LS:
cd /home/user/serv/loginserver/ - путь к папке LS

./LoginServer.sh & - запуск сервера
tail -f log/stdout_login.log - просмотр лога запуска сервера

Запускаем GS:


cd /home/user/serv/gameserver/ - путь к папке GS

./GameServer.sh & - запуск скрипта GS
tail -f log/stdout.log - просмотр лога запуска GS


Проверяем список процессов, запущенных от имени user

ps axuww | grep user


"Убиваем" процессы по PID. Например - kill 90192
Если процесс не завершается, то "убиваем" все процессы начинающиеся на LS\GS:

kill $(ps auxww | grep user | grep Login | awk '{print $2}')

Моя шпаргалка. Может пригодится.
 
Запускаем LS:
cd /home/user/serv/loginserver/ - путь к папке LS

./LoginServer.sh & - запуск сервера
tail -f log/stdout_login.log - просмотр лога запуска сервера

Запускаем GS:


cd /home/user/serv/gameserver/ - путь к папке GS

./GameServer.sh & - запуск скрипта GS
tail -f log/stdout.log - просмотр лога запуска GS


Проверяем список процессов, запущенных от имени user

ps axuww | grep user


"Убиваем" процессы по PID. Например - kill 90192
Если процесс не завершается, то "убиваем" все процессы начинающиеся на LS\GS:

kill $(ps auxww | grep user | grep Login | awk '{print $2}')

Моя шпаргалка. Может пригодится.
А файлы startLoginServer.sh и startGameServer.sh так и должны содержать в себе по 1 строке?
 
А файлы startLoginServer.sh и startGameServer.sh так и должны содержать в себе по 1 строке?
Да. Они ссылаются на твой другой файл ./loginserver_loop.sh
А там уже полная строка запуска. Лучше туда вобще не лазить. Запускай со своего start.....sh
 
Запускаем LS:
cd /home/user/serv/loginserver/ - путь к папке LS

./LoginServer.sh & - запуск сервера
tail -f log/stdout_login.log - просмотр лога запуска сервера

Запускаем GS:


cd /home/user/serv/gameserver/ - путь к папке GS

./GameServer.sh & - запуск скрипта GS
tail -f log/stdout.log - просмотр лога запуска GS


Проверяем список процессов, запущенных от имени user

ps axuww | grep user


"Убиваем" процессы по PID. Например - kill 90192
Если процесс не завершается, то "убиваем" все процессы начинающиеся на LS\GS:

kill $(ps auxww | grep user | grep Login | awk '{print $2}')

Моя шпаргалка. Может пригодится.
Вот моя, мож кому тоже пригодится:
Код:
#!/bin/sh
#

 
 
# Path to main Lineage Lightning folder WITHOUT a trailing slash
RUNPATH="/home/Talos/L2JEternity"
 
 
# Ga eServer Launch Command
GAMEEXEC="java -Dfile.encoding=UTF-8 -server -Xms4G -Xmx16G -XX:+OptimizeFill -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:ParallelGCThreads=16 -XX:ConcGCThreads=5 -Duser.timezone=GMT+3 -cp config:./../libs/* l2e.gameserver.GameServer"
 
# LoginServer Launch Command
LOGINEXEC="java -Xms512m -Xmx512m -cp config:./../libs/* l2e.loginserver.LoginServer"
 
# DONT NO  EDIT AFTER HERE
GAME_PID=$(ps ux | awk '/Game/ && !/awk/ {print $2}')
LOGIN_PID=$(ps ux | awk '/Login/ && !/awk/ {print $2}')
 
start() {
        if [ -z "$LOGIN_PID" ]; then
                echo -n "Starting Lineage Login Server..."
                cd $RUNPATH/login
                screen -A -m -d -S l2.login $LOGINEXEC
                echo "OK"
        else
                echo "Lineage Login Server is already started..."
        fi
 
 
        if [ -z "$GAME_PID" ]; then
                echo -n "Starting Lineage Game Server..."
                cd $RUNPATH/game
                screen -A -m -d -S l2.game $GAMEEXEC
                echo "OK"
        else
                echo "Lineage Game Server is already started..."
        fi
 
 
        return 0
}
 
stop() {
        echo -n "Stopping Lineage Server..."
 
        if [ ! -z "$LOGIN_PID" ]; then
                kill $LOGIN_PID
        fi
 
        if [ ! -z "$GAME_PID" ]; then
                kill $GAME_PID
        fi
 
        echo "OK"
 
        return 0
}
 
start_login() {
 
    if [ -z "$LOGIN_PID" ]; then
                echo -n "Starting Lineage Login Server..."
                cd $RUNPATH/login
                screen -A -m -d -S l2.login $LOGINEXEC
                echo "OK"
        else
                echo "Lineage Login Server is already started..."
        fi
 
 
    return 0
 
}
 
start_game() {
 
    if [ -z "$GAME_PID" ]; then
                echo -n "Starting Lineage Game Server..."
                cd $RUNPATH/game
                screen -A -m -d -S l2.game $GAMEEXEC
                echo "OK"
        else
                echo "Lineage Game Server is already started..."
        fi
 
    return 0
 
}
 
stop_login() {
 
    if [ ! -z "$LOGIN_PID" ]; then
                kill $LOGIN_PID
        echo "Stopping Lineage Login Server..."
    else
        echo "Lineage Login Server is not started"
        fi
 
    return 0
 
}
 
stop_game() {
 
    if [ ! -z "$GAME_PID" ]; then
                kill $GAME_PID
        echo "Stopping Lineage Game Server..."
    else
        echo "Lineage Game Server is not started"
        fi
 
 
 
    return 0
 
}
 
 
 
 
status() {
    echo "[Lineage]============================"
 
 
    if [ ! -z "$LOGIN_PID" ]; then
             echo "[OK] Lineage Login Server is running..."
    else
        echo "[FAIL] Lineage Login Server is not running"
        fi
 
    if [ ! -z "$GAME_PID" ]; then
              echo "[OK] Lineage Game Server is running..."
    else
        echo "[FAIL] Lineage Game Server is not running"
        fi
 
    return 0
 
 
}
 
help() {
 
    echo "[Lineage Server] Help Section =================================="
    echo "help = show this help text"
    echo "start = Start all Server"
    echo "stop = Stop all Server"
    echo "start-login = Start Login Server Only"
    echo "start-game = Start Game Server Only"
    echo "stop-login = Stop Login Server Only"
    echo "stop-game = Stop Game Server Only"
    echo "status = Show Server status"
 
    return 0
}
 
case "$1" in
        start)
                start
 
                ;;
        stop)
                stop
 
                ;;
 
    start-login)
        start_login
 
        ;;
 
    start-game)
        start_game
 
        ;;
 
    stop-login)
        stop_login
 
        ;;
    stop-game)
        stop_game
        ;;
 
    help)
        help
        ;;
    status)
        status
        ;;
 
        *)
                echo $"Usage: $0 (start|stop|stop-login|stop-game|start-login|start-game|status|help)"
                exit 1
esac
 
exit $?
 
Просмотр лога через команду: sudo screen -r l2.login и sudo screen -r l2.game
п.с. Не знаю почему до сих пор в java сборках есть скрипт запуска, но нет убить процесс.
 
Последнее редактирование:
Не знаю почему до сих пор в java сборках есть скрипт запуска, но нет убить процесс
Может по тому что в линуксе проще зарегистрировать логин/гейм как службу в systemd и выполнять запуск/перезапуск/выключение и статус, как и включение/выключение службы в автозапуск при старте ОС одной командой. Почитай на досуге :)
 
Может по тому что в линуксе проще зарегистрировать логин/гейм как службу в systemd и выполнять запуск/перезапуск/выключение и статус, как и включение/выключение службы в автозапуск при старте ОС одной командой. Почитай на досуге
Почитал, не знаю на сколько правильно сделал, но вроде работает:
Код:
[Unit]
Description=L2-login server daemon
After=mysql.service

[Service]
Type=simple
RemainAfterExit=yes
WorkingDirectory=/home/talos/L2JEternity/login/
ExecStart=/opt/jdk-19.0.2/bin/java -Xms512m -Xmx512m -cp config:./../libs/* l2e.loginserver.LoginServer
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target
Код:
[Unit]
Description=L2-game server daemon
After=L2-login.service mysql.service

[Service]
Type=simple
RemainAfterExit=yes
WorkingDirectory=/home/talos/L2JEternity/game/
ExecStart=/opt/jdk-19.0.2/bin/java -Dfile.encoding=UTF-8 -server -Xms4G -Xmx16G -XX:+OptimizeFill -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:ParallelGCThreads=16 -XX:ConcGCThreads=5 -Duser.timezone=GMT+3 -cp config:./../libs/* l2e.gameserver.GameServer
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target
 
Почитал, не знаю на сколько правильно сделал, но вроде работает:
Код:
[Unit]
Description=L2-login server daemon
After=mysql.service

[Service]
Type=simple
RemainAfterExit=yes
WorkingDirectory=/home/talos/L2JEternity/login/
ExecStart=/opt/jdk-19.0.2/bin/java -Xms512m -Xmx512m -cp config:./../libs/* l2e.loginserver.LoginServer
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target
Код:
[Unit]
Description=L2-game server daemon
After=L2-login.service mysql.service

[Service]
Type=simple
RemainAfterExit=yes
WorkingDirectory=/home/talos/L2JEternity/game/
ExecStart=/opt/jdk-19.0.2/bin/java -Dfile.encoding=UTF-8 -server -Xms4G -Xmx16G -XX:+OptimizeFill -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:ParallelGCThreads=16 -XX:ConcGCThreads=5 -Duser.timezone=GMT+3 -cp config:./../libs/* l2e.gameserver.GameServer
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target
Это под какой из Линуксов? Хотелось бы пример под Убунту.
 
Это под какой из Линуксов? Хотелось бы пример под Убунту.
Под systemd, который в т.ч. используется в Ubuntu. В интернете много гайдов, по которым можно собрать минимально рабочий пример службы, они не сложные. Посмотри их, довольно быстро разберешься
 
Под systemd, который в т.ч. используется в Ubuntu. В интернете много гайдов, по которым можно собрать минимально рабочий пример службы, они не сложные. Посмотри их, довольно быстро разберешься
Да блин. Под сервера от Мобиуса, хрен разберешь что писать и как. У него там все через одно место .
 
Я вообще себе бота для ТГ написал, я через бота рестарты, старт, килл , просмотр лога. оооочень удобно.
 
Не поделишься?
Хотя я пытаюсь добиться автозапуска сервера от Мобиуса
 
Назад
Сверху Снизу