1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- #!/bin/sh
- ### BEGIN INIT INFO
- # Provides: cns
- # Required-Start: $all
- # Required-Stop: $all
- # Default-Start: 2 3 4 5
- # Default-Stop: 0 1 6
- # Short-Description: Start cns daemon at boot time
- # Description: Start cns daemon at boot time
- ### END INIT INFO
- START=99
- usage()
- {
- if type systemctl && [ -z "$(systemctl --failed|grep -q 'Host is down')" ]; then
- us="systemctl [start|stop|status|restart] cns.service"
- else
- if [ "$0" = '/etc/rc.common' ]; then
- us="/etc/init.d/cns [start|stop|status|restart]"\
- else
- us="$0 [start|stop|status|restart]"
- fi
- fi &>/dev/null
- echo "Usage:
- $us
- Config file is /opt/cns/cns.json"
- }
- status()
- {
- {
- grep -q cns /proc/`cat "/opt/cns/run.pid" 2>/dev/null`/comm 2>/dev/null && \
- echo "cns is running..." || \
- echo "cns is stopped..."
- } 2>/dev/null
- }
- start()
- {
- status | grep running && return 0
- echo -n "Starting cns:"
- for server_port in 8000 ; do
- iptables -I INPUT -p 6 --dport $server_port -m comment --comment "cns server port" -j ACCEPT
- ip6tables -I INPUT -p 6 --dport $server_port -m comment --comment "cns server port" -j ACCEPT
- done 2>/dev/null
- cd "/opt/cns"
- ./cns -json=cns.json -daemon >/dev/null
- sleep 1
- grep -q cns /proc/`cat /opt/cns/run.pid 2>/dev/null`/comm && \
- echo -e "\033[60G[\033[32m OK \033[0m]" || \
- echo -e "\033[60G[\033[31mFAILED\033[0m]"
- }
- stop()
- {
- for server_port in 8000 ; do
- while iptables -D INPUT -p 6 --dport $server_port -m comment --comment "cns server port" -j ACCEPT; do :;done
- while ip6tables -D INPUT -p 6 --dport $server_port -m comment --comment "cns server port" -j ACCEPT; do :;done
- done 2>/dev/null
- status | grep stopped && return 0
- echo -n "Stopping cns:"
- kill `cat /opt/cns/run.pid 2>/dev/null` 2>/dev/null
- sleep 1
- grep -q cns /proc/`cat /opt/cns/run.pid`/comm 2>/dev/null && \
- echo -e "\033[60G[\033[31mFAILED\033[0m]" || \
- echo -e "\033[60G[\033[32m OK \033[0m]"
- }
- restart()
- {
- stop
- start
- }
- systemdStart()
- {
- status | grep running && return 0
- cd "/opt/cns"
- for server_port in 8000 ; do
- iptables -I INPUT -p 6 --dport $server_port -m comment --comment "cns server port" -j ACCEPT
- ip6tables -I INPUT -p 6 --dport $server_port -m comment --comment "cns server port" -j ACCEPT
- done 2>/dev/null
- ./cns -json=cns.json >/dev/null
- }
- systemdRestart()
- {
- stop
- systemdStart
- }
- ${1:-usage} 2>/dev/null
|