zerotier-one.init.rhel6 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. #!/bin/bash
  2. #
  3. # zerotier-one Start the ZeroTier One network virtualization service
  4. #
  5. # chkconfig: 2345 55 25
  6. # description: ZeroTier One allows systems to join and participate in \
  7. # ZeroTier virtual networks. See https://www.zerotier.com/
  8. #
  9. # processname: zerotier-one
  10. # config: /var/lib/zerotier-one/identity.public
  11. # config: /var/lib/zerotier-one/identity.secret
  12. # config: /var/lib/zerotier-one/local.conf
  13. # config: /var/lib/zerotier-one/authtoken.secret
  14. # pidfile: /var/lib/zerotier-one/zerotier-one.pid
  15. ### BEGIN INIT INFO
  16. # Provides: zerotier-one
  17. # Required-Start: $local_fs $network $syslog
  18. # Required-Stop: $local_fs $syslog
  19. # Should-Start: $syslog
  20. # Should-Stop: $network $syslog
  21. # Default-Start: 2 3 4 5
  22. # Default-Stop: 0 1 6
  23. # Short-Description: Start the ZeroTier One network virtualization service
  24. # Description: ZeroTier One allows systems to join and participate in
  25. # ZeroTier virtual networks. See https://www.zerotier.com/
  26. ### END INIT INFO
  27. # source function library
  28. . /etc/rc.d/init.d/functions
  29. # pull in sysconfig settings
  30. [ -f /etc/sysconfig/zerotier-one ] && . /etc/sysconfig/zerotier-one
  31. RETVAL=0
  32. prog="zerotier-one"
  33. lockfile=/var/lock/subsys/$prog
  34. ZT="/usr/sbin/zerotier-one"
  35. PID_FILE=/var/lib/zerotier-one/zerotier-one.pid
  36. runlevel=$(set -- $(runlevel); eval "echo \$$#" )
  37. start()
  38. {
  39. [ -x $ZT ] || exit 5
  40. echo -n $"Starting $prog: "
  41. $ZT $ZT_OPTIONS -d && success || failure
  42. RETVAL=$?
  43. [ $RETVAL -eq 0 ] && touch $lockfile
  44. echo
  45. return $RETVAL
  46. }
  47. stop()
  48. {
  49. echo -n $"Stopping $prog: "
  50. killproc -p $PID_FILE $ZT
  51. RETVAL=$?
  52. if [ "x$runlevel" = x0 -o "x$runlevel" = x6 ] ; then
  53. trap '' TERM
  54. killall $prog 2>/dev/null
  55. trap TERM
  56. fi
  57. [ $RETVAL -eq 0 ] && rm -f $lockfile
  58. echo
  59. }
  60. reload()
  61. {
  62. stop
  63. start
  64. }
  65. restart() {
  66. stop
  67. start
  68. }
  69. force_reload() {
  70. restart
  71. }
  72. rh_status() {
  73. status -p $PID_FILE zerotier-one
  74. }
  75. rh_status_q() {
  76. rh_status >/dev/null 2>&1
  77. }
  78. case "$1" in
  79. start)
  80. rh_status_q && exit 0
  81. start
  82. ;;
  83. stop)
  84. if ! rh_status_q; then
  85. rm -f $lockfile
  86. exit 0
  87. fi
  88. stop
  89. ;;
  90. restart)
  91. restart
  92. ;;
  93. reload)
  94. rh_status_q || exit 7
  95. reload
  96. ;;
  97. force-reload)
  98. force_reload
  99. ;;
  100. condrestart|try-restart)
  101. rh_status_q || exit 0
  102. if [ -f $lockfile ] ; then
  103. do_restart_sanity_check
  104. if [ $RETVAL -eq 0 ] ; then
  105. stop
  106. # avoid race
  107. sleep 3
  108. start
  109. else
  110. RETVAL=6
  111. fi
  112. fi
  113. ;;
  114. status)
  115. rh_status
  116. RETVAL=$?
  117. if [ $RETVAL -eq 3 -a -f $lockfile ] ; then
  118. RETVAL=2
  119. fi
  120. ;;
  121. *)
  122. echo $"Usage: $0 {start|stop|restart|reload|force-reload|condrestart|try-restart|status}"
  123. RETVAL=2
  124. esac
  125. exit $RETVAL