Как сделать так чтобы сервер работал без консоли

Обновлено: 07.07.2024

Случаются ситуации, когда необходимо быстро выключить сервер. Например – поехали Вы на природу, кушаете шашлыки – звонок из офиса и голос предупреждает, что через 5 минут выключат свет. Хорошо, если настроен UPS, который самостоятельно выключит корректно сервер, а если нет?

Тогда пытаемся подключиться с телефона по терминалу. Судорожно вводим сложный пароль – 10 раз ошибаемся и в итоге не успеваем т.к. электрик решил не ждать. Вот и все :(. Сервисы выключаются неконкретно, кроме сервисов Cистемы IP телефонии конечно. Вот бы нам кнопку, которая позволяла бы выключить сервере без входа в саму систему т.е. не вводя пароль.

Для того чтобы так сделать вам нужно изменить локальную политику безопасности.
Для этого откройте:


и измените её статус на Включен.

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

Причем выключать по сети нужно как windows серверы, так и linux различных дистрибутивов — ubuntu, centos, freebsd. То есть решение должно быть простое и надежное.

Дистанционное выключение Windows сервера

Начнем с самого сложного. На практике реализовать надежный способ выключения windows машин по сети для меня оказалось сложнее, чем linux. Методов и подходов к решению данной задачи много. Я пробовал разные варианты и остановился на одном, который мне показался самым надежным, он сработал без проблем во всех случаях во время тестирования.

Обязательным условием удаленного выключения сервера является сетевой доступ к нему по rdp. Вы можете находится в локальной сети с ним, подключиться по vpn или пробросить rdp соединение редиректом со шлюза. Не важно, главное попасть в систему по rdp.

Принцип работы удаленного отключения следующий:

  1. На компьютере или сервере создается пользователь, которому будет разрешено подключаться по rdp и завершать работу сервера.
  2. В автозагрузке этого пользователя будет скрипт для завершения работы.
  3. Пользователям, которые будут удаленно выключать сервер, дается специально подготовленный rdp клиент, который без всяких запросов будет подключаться нужным пользователем, у которого будет срабатывать скрипт на завершение работы.

Все достаточно просто, но на каждом этапе я сталкивался с проблемами, которые требовали не тривиального решения. Но обо все по порядку.

Итак, идем на север и создаем там простой bat файл следующего содержания:

Сохраняем файл и создаем пользователя, под которым будем выключать сервер. Не забудьте добавить этому пользователю разрешение подключаться по rdp. Если вы выключаете компьютер с десктопной системой, то прав обычного пользователя достаточно. Если же вам надо погасить Windows Server, то пользователя нужно либо сделать админа, либо дать ему права на разрешение выключение сервера через локальную политику безопасности. Живет эта политика по адресу — параметры безопасности — локальные политики — назначение прав пользователей — завершение работы системы.

Вот тут я напоролся на первые неприятности. Я назвал свой скрипт shutdown.bat и очень долго не мог понять, почему он не срабатывает. При вводе команды shutdown с параметрами в консоли все отлично работало, но скрипт не запускался. Оказывается, его нельзя называть таким именем. После того, как переименовал в shut.bat, все отлично заработало. Какая-то нелепая загвоздка, но мне пришлось потратить немало времени, пока я разобрался, в чем тут дело.

Дальше заходим нашим новым пользователем, чтобы создались стандартные папки профиля и кладем скрипт автовыключения сервера ему в автозагрузку — C:Usersshut-userAppDataRoamingMicrosoftWindowsStart MenuProgramsStartup.

Теперь нам нужно настроить автоматический вход пользователя по rdp, чтобы выполнить удаленное завершение работы. Причем пользователь должен заходить на сервер без запроса имени и пароля. Штатными средствами rdp клиента windows это сделать невозможно. Даже если вы сохраните параметры, то при переносе настроек на другой компьютер нужно будет снова вводить пароль. Мне это не подходило.

Я пробовал использовать старую портированную версию rdp 5.2. Это последняя версия, где пароль в зашифрованном виде можно было хранить в файле настроек. Но при переносе этого файла на другой компьютер, все равно выскакивало окно с вводом пароля. Добиться полного автоматизма не получалось.

Но решение было найдено. Существует любопытный проект Remote Desktop Plus, который является надстройкой над rdp. С помощью этой надстройки можно передать параметры в rdp через командную строку, в том числе и имя пользователя с паролем. Мне это полностью подходит. Скачиваем файлик rdp.exe либо с сайта автора проекта, либо с моего. Я скопировал на всякий случай эту очень полезную утилиту. Кладем его в папку и создаем в этой же папке rem-shut.bat файл следующего содержания:

10.10.5.14адрес удаленного сервера
shut-userпользователь rdp от имени которого будет происходить выключение
pass123пароль пользователя
640 480параметры разрешения экрана, можно не указывать

Всего этого достаточно, чтобы выполнить дистанционное завершение работы на windows сервере. Пользователю необходимо передать 2 файла:

Важно, чтобы они лежали в одной папке. При запуске батника произойдет подключение rdp пользователя и выполнится скрипт завершения работы. Задача выполнена.

Удаленное выключение linux сервера

Здесь все оказалось значительно проще. Сразу же было найдено рабочее решение, которое позволяет без проблем удаленно выключить любой linux сервер. Задача решается стандартными средствами putty. Эту программу можно запускать из командной строки с параметрами. В качестве параметров можно указать файл с командами для выполнения, адрес сервера, пользователя и пароль.

Подготовим все необходимое. Сначала создаем простой текстовый документ shutdown.txt следующего содержания:

Дальше создаем bat файл serv-rem-shut.bat с таким содержимым:

shutdown.txtтекстовый файл с командой на отключение
22номер порта ssh
rootимя пользователя, от которого будет выполняться команда на удаленное выключение, лучше создать отдельного
rootpassпароль этого пользователя
10.10.5.15адрес linux сервера

Передаем пользователю 3 файла, сложенные в одну папку:

  • putty.exe
  • shutdown.txt
  • serv-rem-shut.bat

Теперь при запуске скрипта serv-rem-shut.bat серверу по сети будет отправлена консольная команда на завершение работы. При этом не будет задано никаких вопросов. Сервер просто молча выключится.

Заключение

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

Уверен, существует множество других возможностей погасить сервер удаленно. Буду рад, если в комментариях со мной кто-нибудь поделится своими идеями и опытом на этот счет.

Выключение компьютера – действие, с которым обычные пользователи сталкиваются чуть ли не каждый день. Если выключать сервер приходится довольно редко, то обычные, десктопные компьютеры подвержены этой операции очень даже часто. Большинство пользователей выключают linux в графическом интерфейсе системы. В окружении рабочего стола KDE это делается через главное меню, а в Gnome и Unity даже есть специальная кнопка на панели для решения этой задачи.

Но не всегда есть возможность выключить компьютер linux таким образом. Например, если окружение рабочего стола не работает, то больше ничего не остается, кроме того, чтобы выполнять выключение компьютера из командной строки. К тому же выключение компьютера linux через терминал единственно возможный способ для серверов, где нет графического интерфейса. Как вы увидите, этот способ также намного гибче обычного выключения, поскольку вы можете настроить нужное время отключения, или же выключить компьютер, дождавшись завершения работы определенной программы.

Чтобы выключить компьютер Linux используется команда shutdown. Есть также команды poweroff, halt, но они для нестандартных случаев. Обычно же хватает одной только shutdown. Также выключить linux из консоли можно с помощью сочетаний клавиш SysRq. Но сначала давайте рассмотрим синтаксис команды shutdown.

Синтаксис shutdown

Синтаксис команды очень простой:

Опции задают параметры отключения, их мы рассмотрим ниже. Время можно задавать в формате чч:мм в 24 часовом формате. Также можно использовать запись +минуты, указывающую через сколько минут от текущего момента нужно выключить компьютер linux. Также доступна константа now, указывающая, что выключать нужно прямо сейчас.

Опции

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

Процесс выключения Linux

Естественно, команда shutdown linux или любая другая не самостоятельно завершает работу системы и выключает компьютер. Она всего лишь передает запрос на выключение системе инициализации, а затем ядру. А уже они выполняют ряд сложных операций по подготовке и выключению компьютера. Если кратко, то вот они:

  • Завершение процессов пользователя
  • Сигнал SIGTERM всем процессам
  • Сигнал SIGKILL всем процессам
  • Монтирование файловых систем в режиме только для чтения
  • Подготовка внешних устройств к отключению
  • Блокировка пространства пользователя, чтобы гарантировать, что ни один код пользователя больше не будет запущен
  • Завершение работы и отключение питания большинства периферических устройств
  • Отключение питания компьютера

Теперь вы понимаете суть процесса выключения и то почему нельзя просто выдернуть шнур питания с розетки. Если это сделать, компьютер отключится моментально и не выполнит всех необходимых операций, а это может грозить потерей не сохраненных или даже недавно сохраненных данных, повреждением файловой системы и т д. Поэтому желательно выключать компьютер правильно с помощью shutdown или других специальных утилит.

А теперь перейдем к примерам.

Выключение компьютера в Linux

1. shutdown

Самая простая и самая часто используемая команда выключения компьютера linux, отключит компьютер немедленно:

sudo shutdown -h now

Как видите, используется обычное выключение, и константа времени now, тоесть сейчас.

Теперь попробуем запланировать выключение компьютера linux через пять минут:

sudo shutdown -h +5 "Компьютер будет выключен через 5 минут"

Теперь давайте отменим выключение компьютера Linux:

sudo shutdown -c

Точно так же мы можем указать точное время выключения, например в девять вечера:

sudo shutdown -h 21:00

Как я уже говорил, не только команда shutdown linux умеет выключать компьютер, есть еще несколько утилит способных на это. Рассмотрим их тоже.

2. reboot

Команда reboot обычно используется для перезагрузки системы, но она также умеет выключать компьютер. Мы не будем ее подробно рассматривать, потому, что она еще проще команды shutdown. Для выключения нужно задать опцию -p:

3. halt

Эта команда тоже выключает компьютер. Только делает она это очень по-своему. Она не выполняет никаких подготовительных действий перед выключением, а просто отключает питание:

Использование halt может повредить систему

4. poweroff

Это аналог halt, делает в точности то же самое:

5. SysRq

Помните, в начале статьи, я говорил о сочетании клавиш для включения компьютера? Рассмотрим этот вопрос подробнее.

SysRq – это подсистема, реализованная на уровне ядра. Ядро обрабатывает все нажатия клавиш, а с помощью этой подсистемы, оно может принимать от пользователя команды, даже когда система полностью зависла. Основное предназначение этой подсистемы – работа с компьютером в проблемных ситуациях, например, если вы думаете что ваш компьютер заразил вирус, или компьютер завис и его нужно выключить. Для доступа к SysRq используются сочетания клавиш Alt+PrtScr+номер

Самое интересное, что мы можем выполнить безопасное выключение компьютера linux. Для этого зажмите клавиши Alt + PrtScr и поочередно нажимайте:

  • R – разблокировать клавиатуру
  • E – послать всем процессам сигнал SIGTERM
  • I – послать всем процессам сигнал SIGKILL
  • S – перенести все данные из кеша файловых систем на диск
  • U – перемонтировать файловые системы только для чтения
  • B – перезагрузить

Также вместо всего этого можно воспользоваться сочетанием клавиш Alt+PrtScr+O, в таком случае, вся процедура будет выполнена автоматически, эта команда поддерживается не всеми ядрами.

Выводы

Теперь вы знаете все что нужно, о том, как выключить Linux через терминал. Если вас застигнет врасплох ошибка или зависание компьютера, вы знаете что делать. Если остались вопросы – пишите в комментариях!


Всем привет! Сегодня я расскажу, как сделать на своём компьютере сервер, который закрыт в локальной сети (localhost). Многие игроки хотят создать свой сервер и начать над ним работать. Для начала нам надо определиться, на какой версии вы хотите создать сервер. Если вы хотите создать сервер версии 1.16.* и выше, то вам, пожалуй, требуется ядро yatopia, новое популярное ядро, оптимизированное лучше, чем paper на данных версиях. Если у вас есть новые плагины, и нет старых, на версии 1.9-1.13, то лучше использовать paper. Вообще есть много ядер, для модификаций игры, и для плагинов, или просто Vanilla ядро.

Вот пример нескольких ядер:


Теперь перейдём к установке. Создайте папку, где будет расположен ваш сервер. Далее скачайте своё ядро, которое вам больше нравится, поместите его в эту папку, и создайте текстовый документ с названием start. Затем откройте его. И введите следующие строки:

реклама


для копирования текста в фотографии:

реклама

java -Xmx3G -Dfile.encoding=UTF-8 -jar spigot.jar

Сохраняем документ с изменением расширения на ".bat" .Теперь получилась консоль сервера. Теперь вы должны запустить консоль, где находится ядро сервера. Если у вас появился файл eula.txt с logs папкой, значит у вас всё получилось. Теперь заходим в папку eula (Соглашение Minecraft на включение сервера) и меняем строку с eula=false на eula=true, сохраняем и выходим.

реклама



(консоль может быть разной, зависит от версий игры)

Теперь оставьте консоль включенной, так как она генерирует мир и конфигурации. После чего вы должны снова выключить консоль. Зайти в server.properties, найти строки “server-ip=” прописать “server-ip=localhost”, а также отключить лицензию и разрешить вход пиратским версиям игры “online-mode=true” на “online-mode=false”. Теперь сохраняем и закрываем текстовый документ server.properties, включаем консоль. Заходим в Minecraft с версии, на котором создано ядро. Вводим в подключение сервера localhost:25565 (Порт можно изменить в строке server-port в Server.properties). И таким образом вы открыли для себя сервер, другие зайти не смогут, но есть и бесплатные хостинги, которые позволяют создавать сервера для выживания. После этого мы ищем папку plugins, туда можно скачивать плагины .jar формата. (Если вы скачали с неизвестного сайта сборку сервера, рекомендую проверить все папки, особенно plugins, недавно я обнаружил у друга вирус-программу удалённого доступа, но вовремя заметил и удалил её.) Ещё проверьте внимательно плагины, там также могут быть вредоносные коды, внедрившись которые могут взломать сервер, или нечестные игроки благодаря этим кодам.


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


(Показы на скриншотах версия пустой сборки spigot 1.12)

Я оставлю свою пустую сборку которую показывал примером в данной статье.

Подпишитесь на наш канал в Яндекс.Дзен или telegram-канал @overclockers_news - это удобные способы следить за новыми материалами на сайте. С картинками, расширенными описаниями и без рекламы.

Кто играл в Майнкрафт знают, что настройка игрового сервера получается не у всех с первого раза. Для этого силами службы поддержки Cloudlite мы подготовили инструкцию и некоторые замечания, которые так часто необходимы. Сразу оговоримся, чтобы играть на сервере, Вам понадобится лицензионная версия игры Minecraft.

Итак, начнем с самого простого, закажите виртуальный сервер и в личном кабинете напишите в отдел продаж Cloudliteзапрос на открытие бесплатного тестового периода. После этого Вам будет предоставлен сервер для тестирования.


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


Пока виртуальный сервер активируется, посмотрите видео про наш центр обработки данных NORD:


Скопируйте IP адрес из инструкции к виртуальному серверу:






Скрипту из вики требуются curl screen nano bash grep , но они уже установлены в системе. В рамках этой инструкции не будем им пользоваться.


Теперь необходимо подключиться к виртуальному серверу от имени пользователя. Снова откройте PuTTY, вставьте IP адрес из инструкции к виртуальному серверу. Введите логин minecraft и пароль, который придумали.



Будет скачан jar пакет сервера:


Запустите сервер командой в PuTTY:
java -Xmx1024M -Xms1024M -jar minecraft_server.1.12.1.jar nogui

Будут созданы рабочие файлы, а затем отображена ошибка о несогласии с EULA. Сервер закроется с ошибкой. Это нормально -)


Теперь нужно ввести команду в PuTTY:
nano eula.txt



Снова запустите сервер командой в PuTTY:
java -Xmx1024M -Xms1024M -jar minecraft_server.1.12.1.jar nogui

На этот раз он запустится уже без ошибок. Будет создан мир и примерно через две минуты он станет доступен.



Если закрыть окошко PuTTY, то сервер будет остановлен. Это неудобно, правда? Исправим эту ситуацию!



Этот шаг можно пропустить!
Чтобы использовать на сервере свою карту из одиночной игры, нужно из папки saves, которая находится в каталоге установленной игры (minecraft), перенести папку с Вашей картой (например, New World) в папку, где лежит сервер игры. Не забудьте поменять level-name в файле server.properties, если ваша папка называется не так, как текущая папка сервера. Перенос должен осуществляться при выключенном сервере. Для переноса понадобится установить программу WinSCP. Зайдите на виртуальный сервер как root по данным из инструкции к виртуальному серверу (так же, как делали в начале инструкции).



Скопируйте карту, руководствуясь приведённой выше справкой. Программа поддерживает Drag’n’drop, поэтому файл можно потянуть прямо из проводника. Имена папок не должны совпадать, иначе сломаете текущий мир.



Теперь настроим параметры сервера по своему вкусу. Если не планируете возиться с настройкой, то обратите внимание только на три параметра: difficulty, gamemode и motd, а остальное оставьте по стандарту. Не забудьте сохранить файл!

Разрешает игроку совершать полёты по миру Minecraft. Эта опция действует только на полёты в режиме Выживание и оказывает эффект только при наличии соответствующего плагина (например, Flight ). На полёты в режиме Творчество никак не влияет.

Данный параметр определяет возможность перехода в Нижний мир . Если отключить, все игроки, находившиеся в Нижнем мире, будут перемещены в обычный. Не влияет на переход в Край .


Привет. Я первый раз выкладываю что-то на этом сайте, но думаю мои знания кому-то пригодятся, так как такой статьи я не нашла на сайте.

Эта статья для новичков, и она не рассчитана для профессиональных создателей серверов. В этой статье я расскажу как запустить ядро майнкрафт на windows.

Шутки в сторону, теперь по фактам.

Для начала выберем ядро версии майнкрафт которое вам понравится в этой статье — жми.
Помните, что какую версию ядра сервера вы скачиваете, на такой и будете играть.
Обычно для своих серверов использую ядро PaperSpigot версии 1.12.2 так как оно более гибкое в настройке, и более оптимизировано, но так как мы с вами учимся запускать сервер майнкрафт, то я вам объясню на ядре Spigot для 1.12.2 , оно на мой взгляд более дружелюбно к новичкам.

И да, чуть не забыла: Этот гайд подойдёт не только для ядра которое я использую в примерах ниже. Этот гайд для запуска всех ядер.

Приступим создавать свой первый сервер майнкрафт

1) Создаём папку нашего супер сервера

Создаём новую папку на рабочем столе и называем её как хотите.

Советую создавать папку на английском языке (Я назвала папку My server)


2) качаем ядро для нашего сервера

Качаем с этой страницы ЛЮБОЕ КОТОРОЕ ВАМ ТОЛЬКО ПОНРАВИТСЯ ,

Я как уже говорила скачаю Spigot для 1.12.2


Допустим вы уже выбрали ядро, и теперь вам нужно скачать его в папку которую вы создавали в пункте 1 выше

Вот так это выглядит у меня

какая крутая папка с ядром сервера

Эх, теперь выглядит лучше. У вас теперь есть ядро для майнкрафт сервера которое нужно запустить. А как это чудо запустить спросите вы? Ну не торопись, я обо всём расскажу ниже. Читай и смотри скриншоты внимательней. Ты же должен(жна) быть внимательным(ой) создателем сервера майркафт.

Как запустить ядро майнкрафт?

Да, остались только запустить сервер.

Для запуска сервера на компьютере на понадобится запускатор сервера, это небольшой код, который нужно вставить в батник (так называется файл с расширением .bat), но о бо всё по порядку.

Создаём в папке с ядром текстовый документ и называем его как хотим, но опять же желательно на английском языке (латинскими буквами). И сразу же даём ему расширение вместо .txt -> .bat сохраняем его.


Нажимаем Правой Кнопкой Миши по запускатору и нажимаем кнопку изменить

И вставляем код ниже: За место spigot-1_12_2.jar вставьте точно название вашего ядра


Всё, теперь наш сервер ждёт когда вы его запустите своей могучей создательской рукой.

Нажимаем на запускатор два раза (запускаем его)

Откроется консоль на несколько секунд и сразу же закроется.

Это нормально, она создаёт необходимые файлы.

Но нам нужен файл eula.txt открываем этот файл и вместо false ставим true


Таким образом мы соглашаемся с правилами Eula

И если мы этого не сделаем, сервер не запустится.

Запускаем наш запускатор ещё раз. Откроется консоль сервер и начнёт загружаться сервер.

Как понять что сервер загрузился?

Понять о полной загрузке (прогрузке) сервера майнкрафт вам поможет надпись


Всё, теперь пишем в консоли команду stop и нажимаем кнопку Enter

Как сделать поддержку пиратских версий?

Для этого открываете файл server.properties и ищете параметр online-mode=true, и вместо true ставите false

запускаете сервер и радуетесь что вы теперь можете зайти и с пиратки

Всё ваш сервер готов к настройкам, установки плагинов, постройке красивого спавна, и всему тому, для чего нужен вам сервер майнкрафт.

Подключиться к своему серверу

Для подключения к своему серверу можете использовать ip localhost или 127.0 0.1

Это локальный IP вашего компьютера, и ваши друзья не смогут к нему подключиться.

Чтобы ваши друзья подключились к серверу нужно открывать порты для подключения.

Пожалуйста, не спрашивайте меня как открыть порты на Windows, я не знаю, так как для сервера лучше использвать linux., а windows использовать только для настройки серверов.

Небольшое отступление

Я буду писать статьи, если вы меня поддержите, так что если я хоть кому-то помогла, нажмите на арбуз внизу статьи. Это будет самой большой благодарностью.

У меня много идей и знаний по созданию сервера, так что могу с вами поделиться. Можете писать в комментариях о чём ещё написать.

Читайте также: