Вы можете указать в переменной WRKOBJDIR
каталог, в котором должна выполняться сборка. Эта переменная описана в bsd.port.mk(5)
.
Вы можете, например, использовать
cd /usr/ports/lang/gcc/6
doas env WKOBJDIR=/tmp/build make install
или установите переменную в /etc/mk.conf
, если вы всегда хотите компилировать порты в другом месте, чем /usr/ports/pobj
.
Также имейте в виду, что порт lang/gcc/6
был удален из дерева портов сегодня (2019 -04 -25 ), так как он устарел в GCC 8.
]
Можно попробовать добавить
Type=oneshot
RemainAfterExit=yes
В раздел [Сервис]
в CentOS сервис должен находиться в /etc/systemd/system
Таким образом, вы должны создать файл minecraft _server.service внутри указанного каталога с содержимым, которое вы указали в своем посте.
[Unit]
Description=Minecraft Server
After=network.target
[Service]
User=minecraft
Nice=1
KillMode=none
SuccessExitStatus=0 1
ProtectHome=true
ProtectSystem=full
PrivateDevices=true
NoNewPrivileges=true
WorkingDirectory=/opt/minecraft/server
ExecStart=/usr/bin/java -Xmx2048M -Xms1024M -jar server.jar nogui
ExecStop=/opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p mypassword stop
Type=oneshot
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Затем выполните команду:
sudo systemctl daemon-reload
Это необходимо при добавлении новой службы.
Затем введите команду:
sudo systemctl start minecraft_server.service
Если вы хотите, чтобы служба запускалась во время загрузки сервера, просто включите ее:
sudo systemctl enable minecraft_server.service
Вместо запуска вы также можете использовать команду остановки и перезапуска, чтобы остановить или перезапустить службу.
В Майнкрафт не играл и никогда не буду, не знаком с ним. Я просто знаю, как добавить службу в systemd.
На этом веб-сайте объясняется, как использовать systemctl. Как использовать Systemctl для управления службами и модулями Systemd
Начну с того, что лично я не размещаю серверы Minecraft. Я только что помог своему другу превратить его сервер в службу systemd.
Вы захотите включить RCON в конфигурации вашего сервера (, что, я полагаю, у вас уже есть ), а затем вы можете использовать mcrcon из своего терминала для подключения к вашему серверу после его запуска.
mcrcon -h <ip> -P <port> -t
Это должно дать вам работающий терминал (-t ), который вы обычно видите, когда запускаете сервер не как службу.
Некоторые дополнительные разъяснения для вашего варианта использования, поскольку вы упомянули, что являетесь новичком в Linux:
Команда mcrcon может отсутствовать в вашей переменной PATH. Поэтому, если вы запустите синтаксис в приведенном выше блоке кода, это может привести к ошибке, указывающей, что такая команда не найдена. В этом случае, чтобы сохранить функциональность вашего служебного файла, вы должны символически связать /opt/minecraft/tools/mcrcon/mcrcon (путь к исполняемому файлу mcrcon )к местоположению, которое уже находится в PATH, например, /usr/bin
ln -s /opt/minecraft/tools/mcrcon/mcrcon /usr/bin/mcrcon
Это позволит вам запускать mcrcon из любого рабочего каталога, вместо того, чтобы менять каталоги на /opt/minecraft/tools/mcrcon/ и запускать его как./mcrcon или использовать полный путь /opt/minecraft/tools/ mcrcon/mcrcon для запуска mcrcon.
РЕДАКТИРОВАТЬ
Ваши обычные сообщения журнала STDOUT, которые вы больше не видите при использовании RCON, должны по-прежнему записываться в server.log в подкаталоге logs внутри каталога вашего сервера minecraft.