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

Reply via email to