4 # pre_start_service() and pre_stop_service()
7 SOCKET_FILE="${CURRENT_SERVICE}.socket"
8 SERVICE_FILE="${CURRENT_SERVICE}.service"
22 [ "$PROTOCOL" = "tcp" ] || return
23 __LISTEN="ListenStream=$PORT"
26 [ "$PROTOCOL" = "udp" ] || return
27 __LISTEN="ListenDatagram=$PORT"
30 __LISTEN="ListenSequentialPacket=$PORT"
38 echo "[Unit]" >>$SERVICE_FILE
39 echo "Description=$SERVICE_NAME" >>$SERVICE_FILE
41 echo "[Service]" >>$SERVICE_FILE
43 echo "[Unit]" >>$SOCKET_FILE
44 echo "Description=$SERVICE_NAME" >>$SOCKET_FILE
46 echo "[Socket]" >>$SOCKET_FILE
47 echo $__LISTEN >>$SOCKET_FILE
52 echo "Accept=true" >>$SOCKET_FILE
55 [ "${MAX_CONNECTIONS:-n}" = "n" ] || echo "MaxConnections=$MAX_CONNECTIONS" >>$SOCKET_FILE
62 if [ "$SERVER" = "tcpd" ] ; then
63 echo "TCPWrapName=$SERVICE_NAME" >>$SOCKET_FILE
64 elif [ $SERVER != $DAEMON ]; then
65 DAEMON="$SERVER $DAEMON"
67 [ "${INTERFACE:-none}" = "none" ] || echo "BindToDevice=$INTERFACE" >>$SOCKET_FILE
69 echo "User=$USER" >>$SERVICE_FILE
70 [ "${GROUP:-none}" = "none" ] || echo "Group=$GROUP" >>$SERVICE_FILE
71 [ "${NICE:-none}" = "none" ] || echo "Nice=$NICE" >>$SERVICE_FILE
72 [ "${CHROOT:-none}" = "none" ] || echo "RootDirectory=$CHROOT" >>$SERVICE_FILE
73 [ "${ENV:-none}" = "none" ] || echo "Environment=$ENV" >>$SERVICE_FILE
74 echo -n "ExecStart=$DAEMON" >>$SERVICE_FILE
75 if [ "${DAEMONARGS:-none}" = "none" ] ; then
78 echo "$DAEMONARGS" >>$SERVICE_FILE
82 echo "[Install]" >>$SERVICE_FILE
83 echo "Also=${CURRENT_SERVICE}.socket" >>$SERVICE_FILE
87 echo "[Install]" >>$SOCKET_FILE
88 echo "WantedBy=sockets.target" >>$SOCKET_FILE
91 SERVICES=$(ls -d /etc/sysconfig/rc-inetd/* 2>/dev/null | grep -Ev '.*(\.rpm(save|new|orig)|~|CVS)')
92 for i in $SERVICES; do
94 unset SERVICE_NAME SOCK_TYPE PROTOCOL PORT USER
95 unset DAEMON DAEMONARGS MAX_CONNECTIONS GROUP NICE
96 unset FAMILY INTERFACE CHROOT RPCNAME RPCVERSION
97 unset INITGROUPS BANNER ECHO FILTER ENV FLAGS
98 unset SERVER MAX_CONNECTIONS_PER_SOURCE
99 unset CONNECTIONS_PER_SECOND RPCNUMBER
100 unset BANNER_SUCCESS BANNER_FAILURE PASSENV
101 unset SERVICE_TYPE ACCESS_TIMES LOG_TYPE
102 unset LOG_SUCCESS LOG_FAILURE REDIRECT MAX_LOAD
105 . /etc/sysconfig/rc-inetd.conf
107 # ...and then config of *this* service.
110 CURRENT_SERVICE=$(basename $i)
112 # check if service is in deny list ?
113 for i in $DENY_SERVICES; do
114 if [ $i = $CURRENT_SERVICE ]; then
118 [ $DONT_PARSE -eq 0 ] || continue