This is an automated email from the ASF dual-hosted git repository. yongzao pushed a commit to branch support-ain-daemon in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 6cbff7b298811dac5be7e2b4e120c79158145998 Author: Yongzao <[email protected]> AuthorDate: Mon Feb 2 12:16:17 2026 +0800 finish --- iotdb-core/ainode/ainode.xml | 9 +++++ scripts/tools/ops/daemon-ainode.sh | 72 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 81 insertions(+) diff --git a/iotdb-core/ainode/ainode.xml b/iotdb-core/ainode/ainode.xml index 6de635c1338..b47cbeb4a79 100644 --- a/iotdb-core/ainode/ainode.xml +++ b/iotdb-core/ainode/ainode.xml @@ -69,5 +69,14 @@ </includes> <fileMode>0755</fileMode> </fileSet> + <fileSet> + <directory>${project.basedir}/../../scripts/tools/ops</directory> + <outputDirectory>tools/ops</outputDirectory> + <includes> + <include>*ainode.*</include> + <include>**/*ainode.*</include> + </includes> + <fileMode>0755</fileMode> + </fileSet> </fileSets> </assembly> diff --git a/scripts/tools/ops/daemon-ainode.sh b/scripts/tools/ops/daemon-ainode.sh new file mode 100644 index 00000000000..12982ef7e80 --- /dev/null +++ b/scripts/tools/ops/daemon-ainode.sh @@ -0,0 +1,72 @@ +#!/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_AINODE_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 + +FILE_NAME=$SYSTEMD_DIR/iotdb-ainode.service + +cat > "$FILE_NAME" <<EOF +[Unit] +Description=iotdb-ainode +Documentation=https://iotdb.apache.org/ +After=network.target + +[Service] +StandardOutput=null +StandardError=null +LimitNOFILE=65536 +Type=simple +User=root +Group=root +ExecStart=$IOTDB_AINODE_SBIN_HOME/start-ainode.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 AINode has been successfully registered." + +systemctl daemon-reload +echo +echo "Do you want to execute 'systemctl start iotdb-ainode'? y/n (default y)" +read -r START_SERVICE +if [[ -z "$START_SERVICE" || "$START_SERVICE" =~ ^[Yy]$ ]]; then + "${IOTDB_AINODE_SBIN_HOME}"/sbin/stop-ainode.sh >/dev/null 2>&1 & + systemctl start iotdb-ainode + echo "Executed successfully." +fi +echo +echo "Do you want to execute 'systemctl enable iotdb-ainode' to start at boot? y/n (default y)" +read -r ADD_STARTUP +if [[ -z "$ADD_STARTUP" || "$ADD_STARTUP" =~ ^[Yy]$ ]]; then + systemctl enable iotdb-ainode >/dev/null 2>&1 + echo "Executed successfully." +fi \ No newline at end of file
