From 87af2dbc43a95e3813fb1f1d4078734ddb0781d2 Mon Sep 17 00:00:00 2001 From: Karthic Rao Date: Sat, 22 Oct 2016 09:26:56 +0530 Subject: [PATCH] dist: Adding systemd script for running Minio distributed. (#3034) --- dist/linux-systemd/distributed/README.md | 41 ++++++++++++++++++++ dist/linux-systemd/distributed/minio.service | 40 +++++++++++++++++++ 2 files changed, 81 insertions(+) create mode 100644 dist/linux-systemd/distributed/README.md create mode 100644 dist/linux-systemd/distributed/minio.service diff --git a/dist/linux-systemd/distributed/README.md b/dist/linux-systemd/distributed/README.md new file mode 100644 index 000000000..01aa78f58 --- /dev/null +++ b/dist/linux-systemd/distributed/README.md @@ -0,0 +1,41 @@ + +- Systemd script is configured to run the binary from /usr/share/minio/bin/. + + `$ mkdir -p /usr/share/minio/bin/` + +- Download the binary. Find the relevant links for the binary at https://minio.io/downloads/#minio-server. + + `$ wget -O /usr/share/minio/bin/minio https://dl.minio.io/server/minio/release/linux-amd64/minio` + +- Give execute permission to the Minio binary. + + `$ chmod +x /usr/share/minio/bin/minio` + +- Create user minio. Systemd is configured with User=minio . + + `$ useradd minio` + +- Create the Environment configuration file. + + `$ cat <> /etc/default/minio.conf` + + ``` + MINIO_VOLUMES=node1:/tmp/drive1 node2:/drive1 node3:/tmp/drive1 minio4:/tmp/drive1 + + MINIO_ACCESS_KEY=Server-Access-Key + + MINIO_SECRET_KEY=Server-Secret-Key + + EOT + ``` +- Download and put `minio.service` in `/etc/systemd/system/` + + `$ ( cd /etc/systemd/system/; curl -O https://raw.githubusercontent.com/minio/minio/master/dist/linux-systemd/distributed/minio.service )` + +- Enable startup on boot. + + `$ systemctl enable minio.service` + + + + diff --git a/dist/linux-systemd/distributed/minio.service b/dist/linux-systemd/distributed/minio.service new file mode 100644 index 000000000..9dd548b45 --- /dev/null +++ b/dist/linux-systemd/distributed/minio.service @@ -0,0 +1,40 @@ +[Unit] +Description=Minio +Documentation=https://docs.minio.io +Wants=network-online.target +After=network-online.target +AssertFileIsExecutable=/usr/share/minio/bin/minio + +[Service] +WorkingDirectory=/usr/share/minio/ + +User=minio +Group=minio + +PermissionsStartOnly=true + +EnvironmentFile=-/etc/default/minio.conf +ExecStartPre=/bin/bash -c "[ -n \"${MINIO_VOLUMES}\" ] || echo \"Variable MINIO_VOLUMES not set in /etc/defaults/minio.conf\"" + +ExecStart=/usr/share/minio/bin/minio server $MINIO_OPTS $MINIO_VOLUMES + +StandardOutput=journal +StandardError=inherit + +# Specifies the maximum file descriptor number that can be opened by this process +LimitNOFILE=65536 + +# Disable timeout logic and wait until process is stopped +TimeoutStopSec=0 + +# SIGTERM signal is used to stop Minio +KillSignal=SIGTERM + +SendSIGKILL=no + +SuccessExitStatus=0 + +[Install] +WantedBy=multi-user.target + +# Built for ${project.name}-${project.version} (${project.name})