foreword
Use the query service port of linux to judge the start, stop and update of writing condition trigger service
1. Shell
Shell is a program written in C language, which is a bridge for users to use Linux. Shell is both a command language and a programming language. Shell refers to an application program that provides an interface through which users access the services of the operating system kernel. Ken Thompson's sh is the first Unix shell, and Windows Explorer is a typical graphical interface shell.
2. Write rsync service start and stop scripts
[root@controller init.d]# cat /usr/lib/systemd/system/rsyncd.service
[Unit]
Description=fast remote file copy program daemon
ConditionPathExists=/etc/rsyncd.conf
[Service]
EnvironmentFile=/etc/sysconfig/rsyncd
ExecStart=/usr/bin/rsync --daemon --no-detach "$OPTIONS" #启动方法
Use the netstat -tunlp |grep rsync |wc -l command to check whether the service is enabled, which is convenient for conditional judgment in the script
[root@controller init.d]# cat rsync
#!/bin/bash
status=`netstat -tunlp |grep rsync |wc -l`
if [ "$1" = "start" ]
then
/usr/bin/rsync --daemon
if [ "$status" -lt 1 ]
then
sleep 2
echo "Rsync started !!"
else
echo "Rsync already Started!"
fi
elif [ "$1" = "stop" ]
then
if [ "$status" -gt 0 ]
then
killall rsync
sleep 2
echo "Rsync stoped !!"
else
echo "Get something wrong,please check the status"
fi
elif [ "$1" = "restart" ]
then
killall rsync
echo "Rsync stopping!!"
sleep 2
echo "Rsync stoped !!"
if [ "$status" -lt 1 ]
then
/usr/bin/rsync --daemon
echo "Rsync starting!!"
else
echo "Rsync already Started!"
fi
/usr/bin/rsync --daemon
else
echo "Usage ./rsync {start|stop|restart}"
fi
3. Run the test
[root@controller init.d]# ./rsync.sh
Usage ./rsync {start|stop|restart}
[root@controller init.d]# netstat -ntpl |grep rsync
[root@controller init.d]# ./rsync.sh start
Rsync started !!
[root@controller init.d]# netstat -ntpl |grep rsync
tcp 0 0 127.0.0.1:873 0.0.0.0:* LISTEN 8099/rsync
[root@controller init.d]# ./rsync.sh stop
Rsync stoped !!
[root@controller init.d]# netstat -ntpl |grep rsync
[root@controller init.d]# ./rsync.sh restart
Rsync stopping!!
Rsync stoped !!
Rsync starting!!
[root@controller init.d]# netstat -ntpl |grep rsync
tcp 0 0 127.0.0.1:873 0.0.0.0:* LISTEN 8161/rsync