blob: 10dc5b4ef0942f2020b4f83cee87881880f04263 [file] [log] [blame]
#!/bin/bash
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
IOTDB_SBIN_HOME="$(cd "`dirname "$0"`"/../../sbin; pwd)"
SYSTEMD_DIR="/etc/systemd/system"
if [ ! -d "$SYSTEMD_DIR" ]; then
echo "Current system can't support systemd"
exit 1 # Exit with an error status
fi
if [ -z "$JAVA_HOME" ]; then
echo "JAVA_HOME is not set. Please set the JAVA_HOME environment variable."
exit 1
fi
FILE_NAME=$SYSTEMD_DIR/iotdb-datanode.service
cat > "$FILE_NAME" <<EOF
[Unit]
Description=iotdb-datanode
Documentation=https://iotdb.apache.org/
After=network.target
[Service]
StandardOutput=null
StandardError=null
LimitNOFILE=65536
Type=simple
User=root
Group=root
Environment=JAVA_HOME=$JAVA_HOME
ExecStart=$IOTDB_SBIN_HOME/start-datanode.sh
Restart=on-failure
SuccessExitStatus=143
RestartSec=5
StartLimitInterval=600s
StartLimitBurst=3
RestartPreventExitStatus=SIGKILL
[Install]
WantedBy=multi-user.target
EOF
echo "Daemon service of IoTDB DataNode has been successfully registered."
systemctl daemon-reload
echo
echo "Do you want to execute 'systemctl start iotdb-datanode'? y/n (default y)"
read -r START_SERVICE
if [[ -z "$START_SERVICE" || "$START_SERVICE" =~ ^[Yy]$ ]]; then
"${IOTDB_SBIN_HOME}"/sbin/stop-datanode.sh >/dev/null 2>&1 &
systemctl start iotdb-datanode
echo "Executed successfully."
fi
echo
echo "Do you want to execute 'systemctl enable iotdb-datanode' to start at boot? y/n (default y)"
read -r ADD_STARTUP
if [[ -z "$ADD_STARTUP" || "$ADD_STARTUP" =~ ^[Yy]$ ]]; then
systemctl enable iotdb-datanode >/dev/null 2>&1
echo "Executed successfully."
fi