Alma Linux 9.6 - Creating systemctl capability

From Network for Advanced NMR
Revision as of 16:07, 27 June 2025 by Lmorris (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

For Alma Linux 9.6, the standard

service data-transport-daemon status

command doesn't work.

Let's make the daemon work with systemctl.

Step 1. Create the service file.

sudo vi /etc/systemd/system/data-transport-daemon.service

Enter the following lines in the file:

[Unit]
Description=Data Transport Daemon
After=network.target

[Service]
Type=forking
ExecStart=/opt/nan-dtdaemon/data-transport-daemon
TimeoutStopSec=10
KillSignal=SIGINT
Restart=on-failure
User=root

[Install]
WantedBy=multi-user.target

Step 2. Get the daemon started

sudo systemctl daemon-reload

sudo systemctl restart data-transport-daemon

Helpful Commands

systemctl start data-transport-daemon

systemctl stop data-transport-daemon

systemctl restart data-transport-daemon

systemctl status data-transport-daemon

# investigating problems
journalctl -xeu data-transport-daemon

Bonus Material (very optional)

I like to get the status of a few things when I log onto one of the NMR spectrometer workstations remotely.

In my .bash_profile, I added:

# Check if the shell is interactive
if [[ $- == *i* ]]; then
        /home/lmorris/scripts/checkNDTS.sh
fi

Edit the path and filename as appropriate.

My version of checkNDTS.sh is:

#!/usr/bin/bash

# v 1.10 (2025.06jun.19)

# 1. see who's on the system
echo -e "\n\n================================================\n"

# for Alma Linux 9 use
user=$(who | awk '$2 == "seat0" { print $1 }')
# for Centos 7 use
# user=$(who | awk '$2 == ":0" { print $1 }')

if [ -n "$user" ]; then
    echo "User: $user"
else
    echo "No user logged into graphical session."
fi

echo ""

# 2. make sure the daemon is running

NDTS=$(systemctl status data-transport-daemon |grep Active)
CK_NDTS="active"

# Define ANSI color codes
RED="\033[0;31m"
# YELLOW="\033[0;33m" # for reference (not used)
GREEN="\033[0;32m"
# CYAN="\033[0;36m" # for reference (not used)
RESET="\033[0m" # Reset color back to default

# ndts daemon status
if [[ "$NDTS" == *"$CK_NDTS"* ]]; then
    echo -e "${GREEN}NDTS daemon${RESET} status: ${GREEN}running${RESET}" 
else
    echo -e "${RED}NDTS daemon${RESET} status: ${RED}INACTIVE${RESET}"
fi

echo ""

# 3. check the port on gateway computer

HOST="128.192.9.245" # edit for the IP address of your gateway computer
PORT=60195 # port used by ndts to communicate to the gateway computer

if nc -z -w3 $HOST $PORT; then
  echo "✅ Port $PORT is open on $HOST"
else
  echo "❌ Port $PORT is NOT reachable on $HOST"
fi

echo -e "\n================================================\n"