Туториал Запускатры [Windows и Linux]

DarkCyber

Старожил
Пользователь
Баллы
123
В этом туториале я расскажу как сделать свой Запускатр (Стартер, Run'ner) сервера, не скопированный у кого либо, а сделанный своими "прямыми" ручками.​
Windows​
​
Перед созданием Запускатра, создайте текстовый документ, нажмите "Сохранить как" и введите название "Run.bat" или "Start.bat" и сохраните.

Покажу вам самый простой Запускатр (далее Стартер)
Этот Стартер будет длинной в 1 строчку.
И будет выглядеть вот так:
Код:
java -jar server.jar
Это самый простой вариант.
Далее мы его рассмотрим.
  1. "java" - это как "start", но для специального класса поддерживаемого только ею.
  2. -jar - подкласс файла поддерживаемого только jav'ой.
  3. server.jar - название ядра сервера в формате .jar (может быть и другое)
Давайте рассмотрим немного усложненный способ, в том числе и для x64 битных систем.

Код:
java -Xms1024M -Xmx1024M -jar server.jar -o true
PAUSE
  1. -Xms1024M -Xmx1024M - Максимальная и минимальная выделяемая оперативная память под сервер.
  2. -o true - Опишу позже. Это специальный параметр.
  3. PAUSE - Если мы не выставим этот параметр, то командная строка (консоль сервера) просто закроется.
Между -Xmx1024M -jar и server.jar можно вставить -Dfile.encoding=UTF-8 тогда, кодировка консоли изменится, соответственно на UTF-8.

18px-Attention_niels_epting.svg.png
Если в Стартере указано server.jar, то и ядро должно называться server с расширением .jar


Позже будет написано, как делать стартеры для Linux и MacOS
Туториал будет дополняться​
 
Я ожидал что-та новое при слове "Запускатры".
Это просто оказалось создание батника :eek:
 
  1. "java" - это как "start", но для специального класса поддерживаемого только ею.
  2. -jar - подкласс файла поддерживаемого только jav'ой.
  3. server.jar - название ядра сервера в формате .jar (может быть и другое)

  1. "java" это название программы, которую мы запускаем. система ищет программу с данным названием в определенных папках и запускает.
  2. -jar - параметр, который указывает программе, что надо запускать jar файл
  3. sserver.jar - имя нужного jar файла.
а ты про какие-то классы и подклассы...
 
Я ожидал что-та новое при слове "Запускатры".
Это просто оказалось создание батника :eek:

Ну как видишь додумался сделать батник в 1 строчку..
  1. "java" это название программы, которую мы запускаем. система ищет программу с данным названием в определенных папках и запускает.
  2. -jar - параметр, который указывает программе, что надо запускать jar файл
  3. sserver.jar - имя нужного jar файла.
а ты про какие-то классы и подклассы...
По моему одно и тоже?
 
-Xmx=N(g,m) -всего выделенной оперативной памяти для javaVM
-Xms=N(g,m) -кол-во доступной памяти из -Xmx
-Xmn=N(g,m) -выделение для молодого поколения из -Xms (тем самым играясь с балансом между штатным поколением)

молодое поколение - это самое динамическое поколение, там же происходит вся жара. Оно делиться на несколько секторов Eden, survival0, survival1 и т.д. Но так же есть и штатное поколение, но об этом чуть позже. При аллокации памяти из массива содержимое данной памяти является мусором - любые биты, оставшиеся после того, как память использовалась в последний раз.
Как последствие мусор рано или поздно переполняет свободное пространство (в разных смыслах заполнения. Штатное поколение не исключение) и происходит компилирование (чистка мусора что проявляется GC паузой во время которой работа приложения временно останавливается).

В общем молодое поколение является беговой дорожкой. Штатное скорее всего корзиной, в которую при отборе мусора во время компиляции, часть перебрасывается ему на хранение...

Сама система сложнее чем я описал в раз 10. Используя параметры, вы изменяете ход событий работы сервера и его поведения.
 
Советую еще сборщик мусора включать, на старых версиях это было актуально. -Xincgc
 
Код:
#include <stdlib.h>
#include <string.h>
 
int main(int argc, char* argv[]) {
    if(argc == 3){
        char k[2000] = "java -Xms ";   
        strcpy(k, argv[1]);
        strcpy(k, " -Xmx ");
        strcpy(k, argv[2]);
        strcpy(k, " ");
        strcpy(k, argv[3]);
        strcpy(k, " -nogui");
        system(k);
    }   
}
- это круто и хардкорно!

Код:
java -Xms20G -Xmx20G -Xincgc -XX:ParallelGCThreads=2 -XX:PermSize=1G -XX:MaxPermSize=2Gm -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:MaxGCPauseMillis=5 -XX:+UseAdaptiveGCBoundary -XX:-UseGCOverheadLimit -XX:+UseBiasedLocking -XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=20 -XX:MaxTenuringThreshold=10 -Xnoclassgc -XX:UseSSE=3 -XX:+UseLargePages -XX:+UseFastAccessorMethods -XX:+UseStringCache -XX:+UseCompressedStrings -XX:+AggressiveOpts -jar craftbukkit.jar
- это круто и хардкорно!

Твоя статья -
(Цитата от Арни:) )
P. S. Это круто и ЭТОПОДДЕРЖИВАЕТСЯНАВСЕХОПЕРАЦИОННЫХСИСТЕМАХ, а ещё хардкорно.
 
Можно с таким успехом задать вопрос к ТС. «Не подскажете, как мне ретикулировать сплайны с использованием гексагональной системы декодирования, чтобы я мог создать GUI на VisualBasic и отследить IP-адрес?»
Тут лучше использовать Си, Perl и Python, для автоматизации использования exploit фреймворков и их автоматической эксплуатации через web-интерфейс для нахождения уязвимостей спутников и дальнейшей эксплуатации через взломанные proxy-сервера (на кайманах:) ), которые объединены в VPN (в виде ботнета).
 
По моему одно и тоже?
Тапок и кроссовок. Одно и тоже чтоль?
Запускатор под пингвина Linux
Он должен быть с расширением .sh Пример start.sh
-Xms1000M -Xmx1000M - 1000 это кол-во памяти в мегабайтах
server.jar - ядро сервера с названием 'server' и расширением .jar
1 гигабайт = 1024 мб. КОГДА ЗАПОМНИТЕ УЖЕ?
 
Запускатор под пингвина Linux
Он должен быть с расширением .sh Пример start.sh


-Xms1000M -Xmx1000M - 1000 это кол-во памяти в мегабайтах

server.jar - ядро сервера с названием 'server' и расширением .jar

У меня есть варианты получше
 
Назад
Верх