Linux: How to start a Minecraft server at boot via Systemd

index-hero-og.088fb7996b03

I am not into Minecraft, but my kids are.

I decided to local host a small Minecraft server on a RHEL 7 vm.  There are tons of guides on how to install Minecraft on Linux, but I did not find much of anything that details how to get the software to start at boot-time via systemd.

Below are the steps that I took. These instructions should work on RHEL 6/7, Centos 6/7, or any other Linux that utilizes systemd for starting services.

Change directory to the systemd directory.

# cd /etc/systemd/system

Create a systemd service file using your favorite text editor. Mine is called minecraft.service.

[root@minecraft system]# cat minecraft.service
[Unit]
Description=Start Minecraft
After=network.target

[Service]
Type=simple
ExecStart=/root/start_minecraft_server.bash
TimeoutStartSec=0

[Install]
WantedBy=default.target

Make the systemd script executable.

# chmod +x /etc/systemd/system/minecraft.service

Next, create a startup script. Again use your favorite text editor. In the example above, systemd is configured to run the script “/root/start_minecraft_server.bash”. We now need to create that script. Its contents are below.

#!/bin/bash

#Standard Minecraft
cd /home/mcserver/minecraft
exec java -Xmx2048M -Xms2048M -jar minecraft_server.1.12.2.jar nogui

Make the script above executable.

#chmod +x /root/start_minecraft_server.bash

Now reload systemd.

# systemctl daemon-reload

Enable and start your service

#systemctl enable minecraft.service

#systemctl start minecraft.service

OpenStack 10 (Newton) Lab Installation and Configuration Guide

How to deploy a simple OSP 10 POC/lab environment using Packstack (non-director deploy.

Source: OpenStack 10 (Newton) Lab Installation and Configuration Guide

Driving in the Fast Lane: Huge Page support in OpenStack Compute

arger page sizes there is also an increased potential for memory to be wasted as processes must allocate memory in pages but not all of the memory on the page may actually be required.

Source: Driving in the Fast Lane: Huge Page support in OpenStack Compute

Home Assistant: Checking configuration.yaml for errors

alexa-512x512

See instructions below on how to verify your configuration.yaml.

Ssh into your Home Assistant host. In my environment, I am running home assistant on a Raspberry Pi 2.

First I ssh as root. I have manually set the root password and have enabled root logins via /etc/ssh/sshd_config.  I have also added a static DNS entry for my Raspberry Pi 2.

 $ ssh root@ha

Su to the user, homeassistant.

root@ha:/var/log# su – homeassistant

Then run the command below.

homeassistant@ha:~ $ /srv/homeassistant/bin/hass –script check_config
Testing configuration at /home/homeassistant/.homeassistant

If you run into an error, you should see output similar to the example below.

homeassistant@ha:~ $ /srv/homeassistant/bin/hass –script check_config
Testing configuration at /home/homeassistant/.homeassistant
17-02-27 18:20:43 ERROR (MainThread) [homeassistant.bootstrap] Invalid config for [media_player.directv]: required key not provided @ data[‘host’]. Got None. (See ?, line ?). Please check the docs at https://home-assistant.io/components/media_player.directv/
Failed config
media_player.directv:
platform: directv

In the example above, there is an issue with my directv config. I will need to troubleshoot.

 

Creating and Deleting OpenStack Pacemaker IP Addresses

bild_go-clusters-34-nichtinsocialmediaverwenden

You can use the steps below if you need to change managed IP resources, for example, if you need to re-IP your RHEL OSP Overcloud endpoints.

In this example, we are changing a managed VIP from one IP to another.

First, we get a good look at the resource that we want to delete. Here we are going to delete the resource ip-99.239.203.25. This resource starts the VIP, 99.239.203.25.

# pcs resource show ip-99.239.203.25
Resource: ip-99.239.203.25 (class=ocf provider=heartbeat type=IPaddr2)
Attributes: ip=99.239.203.25 cidr_netmask=32
Operations: start interval=0s timeout=20s (ip-99.239.203.25-start-interval-0s)
stop interval=0s timeout=20s (ip-99.239.203.25-stop-interval-0s)
monitor interval=10s timeout=20s (ip-99.239.203.25-monitor-interval-10s)

Now let’s actually delete it.

# pcs resource delete ip-99.239.203.25
Attempting to stop: ip-99.239.203.25…Stopped

Now lets create the replacement VIP

# pcs resource create ip-99.239.203.10 ocf:heartbeat:IPaddr2 ip=99.239.203.10 cidr_netmask=32 op monitor interval=10s

Now, let’s take a good look at it.

# pcs resource show ip-99.239.203.10
Resource: ip-99.239.203.10 (class=ocf provider=heartbeat type=IPaddr2)
Attributes: ip=99.239.203.10 cidr_netmask=32
Operations: start interval=0s timeout=20s (ip-99.239.203.10-start-interval-0s)
stop interval=0s timeout=20s (ip-99.239.203.10-stop-interval-0s)
monitor interval=10s (ip-99.239.203.10-monitor-interval-10s)

Now we need to check to make sure that the VIP started on one of our OpenStack controllers.

# pcs status | grep 99.239.203.10
ip-99.239.203.10 (ocf::heartbeat:IPaddr2): Started ctrl01

For good measure, let’s make sure we can ping it.

# ping 99.239.203.10
PING 99.239.203.10 (99.239.203.10) 56(84) bytes of data.
64 bytes from 99.239.203.10: icmp_seq=1 ttl=64 time=0.781 ms
64 bytes from 99.239.203.10: icmp_seq=2 ttl=64 time=1.21 ms