diff --git a/README.md b/README.md index 87fcf95..0b94598 100644 --- a/README.md +++ b/README.md @@ -87,20 +87,21 @@ server端配置(10.0.1.1): - 建议在server端设置较长的超时时间 - 建议在client端设置较短的超时时间 -## linux部署 +## 部署 -1. 将init.d/np-cli和init.d/np-svr拷贝至/etc/init.d目录 -2. 创建/opt/natpass和对应目录 +1. [下载](https://github.com/lwch/natpass/releases)并解压到任意目录 +2. 修改配置文件 +3. 注册服务 - sudo mkdir -p /opt/natpass/bin /opt/natpass/conf -3. 将编译出的二进制文件拷贝至/opt/natpass/bin目录 -4. 将配置文件拷贝至/opt/natpass/conf目录,并修改对应参数 -5. 设置开机启动项 + sudo ./np-svr -conf <配置文件路径> -action install + 或 + sudo ./np-cli -conf <配置文件路径> -action install +4. 设置开机启动项 sudo systemctl enable np-svr 或 sudo systemctl enable np-cli -6. 启动对应服务 +5. 启动对应服务 sudo /etc/init.d/np-svr start 或 diff --git a/build_all.go b/build_all.go index cff0269..de53cc0 100644 --- a/build_all.go +++ b/build_all.go @@ -76,13 +76,6 @@ func build(t target) { runtime.Assert(err) err = copyFile("CHANGELOG.md", path.Join(buildDir, "CHANGELOG.md")) runtime.Assert(err) - if t.os != "windows" && t.os != "android" && t.os != "ios" { - runtime.Assert(os.MkdirAll(path.Join(buildDir, "init.d"), 0755)) - err = copyFile(path.Join("init.d", "np-cli"), path.Join(buildDir, "init.d", "np-cli")) - runtime.Assert(err) - err = copyFile(path.Join("init.d", "np-svr"), path.Join(buildDir, "init.d", "np-svr")) - runtime.Assert(err) - } ldflags := "-X 'main._GIT_HASH=" + gitHash() + "' " + "-X 'main._GIT_REVERSION=" + gitReversion() + "' " + diff --git a/init.d/np-cli b/init.d/np-cli deleted file mode 100755 index bd8ce7c..0000000 --- a/init.d/np-cli +++ /dev/null @@ -1,115 +0,0 @@ -#!/bin/sh -# -# chkconfig: 2345 12 88 -# description: natpass client -### BEGIN INIT INFO -# Provides: lwch748@gmail.com -# Required-Start: $network -# Required-Stop: -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: np-cli -# Description: natpass client -### END INIT INFO - -NAME=np-cli -WORKDIR=/opt/natpass -DAEMON=/opt/natpass/bin/$NAME -CONFIG=/opt/natpass/conf/client.yaml -PIDFILE=/var/run/$NAME.pid - -wait_for_pid () { - try=0 - while test $try -lt 35 ; do - case "$1" in - 'created') - if [ -f "$2" ] ; then - try='' - break - fi - ;; - 'removed') - if [ ! -f "$2" ] ; then - try='' - break - fi - ;; - esac - - echo -n . - try=`expr $try + 1` - sleep 1 - done -} - -case "$1" in - start) - echo -n "Starting $NAME " - cd $WORKDIR - nohup $DAEMON -d -pid $PIDFILE -u nobody -conf $CONFIG > /dev/null 2>&1 & - if [ "$?" != 0 ] ; then - echo " failed" - exit 1 - fi - wait_for_pid created $PIDFILE - if [ -n "$try" ] ; then - echo " failed" - exit 1 - else - echo " done" - fi - ;; - stop) - echo -n "Gracefully shutting down $NAME " - if [ ! -r $PIDFILE ] ; then - echo "warning, no pid file found - $NAME is not running ?" - exit 1 - fi - kill -QUIT `cat $PIDFILE` - wait_for_pid removed $PIDFILE - if [ -n "$try" ] ; then - echo " failed. Use force-quit" - exit 1 - else - echo " done" - fi - ;; - status) - if [ ! -r $PIDFILE ] ; then - echo "$NAME is stopped" - exit 0 - fi - - PID=`cat $PIDFILE` - if ps -p $PID | grep -q $PID; then - echo "$NAME (pid $PID) is running..." - else - echo "$NAME dead but pid file exists" - fi - ;; - force-quit) - echo -n "Terminating $NAME " - if [ ! -r $PIDFILE ] ; then - echo "warning, no pid file found - $NAME is not running ?" - exit 1 - fi - kill -TERM `cat $PIDFILE` - wait_for_pid removed $PIDFILE - if [ -n "$try" ] ; then - echo " failed" - exit 1 - else - echo " done" - fi - ;; - restart) - $0 stop - $0 start - ;; - *) - echo "Usage: $0 {start|stop|status|force-quit|restart}" - exit 1 - ;; -esac - -exit $? \ No newline at end of file diff --git a/init.d/np-svr b/init.d/np-svr deleted file mode 100755 index 18fa078..0000000 --- a/init.d/np-svr +++ /dev/null @@ -1,115 +0,0 @@ -#!/bin/sh -# -# chkconfig: 2345 12 88 -# description: natpass server -### BEGIN INIT INFO -# Provides: lwch748@gmail.com -# Required-Start: $network -# Required-Stop: -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: np-svr -# Description: natpass server -### END INIT INFO - -NAME=np-svr -WORKDIR=/opt/natpass -DAEMON=/opt/natpass/bin/$NAME -CONFIG=/opt/natpass/conf/server.yaml -PIDFILE=/var/run/$NAME.pid - -wait_for_pid () { - try=0 - while test $try -lt 35 ; do - case "$1" in - 'created') - if [ -f "$2" ] ; then - try='' - break - fi - ;; - 'removed') - if [ ! -f "$2" ] ; then - try='' - break - fi - ;; - esac - - echo -n . - try=`expr $try + 1` - sleep 1 - done -} - -case "$1" in - start) - echo -n "Starting $NAME " - cd $WORKDIR - nohup $DAEMON -d -pid $PIDFILE -u nobody -conf $CONFIG > /dev/null 2>&1 & - if [ "$?" != 0 ] ; then - echo " failed" - exit 1 - fi - wait_for_pid created $PIDFILE - if [ -n "$try" ] ; then - echo " failed" - exit 1 - else - echo " done" - fi - ;; - stop) - echo -n "Gracefully shutting down $NAME " - if [ ! -r $PIDFILE ] ; then - echo "warning, no pid file found - $NAME is not running ?" - exit 1 - fi - kill -QUIT `cat $PIDFILE` - wait_for_pid removed $PIDFILE - if [ -n "$try" ] ; then - echo " failed. Use force-quit" - exit 1 - else - echo " done" - fi - ;; - status) - if [ ! -r $PIDFILE ] ; then - echo "$NAME is stopped" - exit 0 - fi - - PID=`cat $PIDFILE` - if ps -p $PID | grep -q $PID; then - echo "$NAME (pid $PID) is running..." - else - echo "$NAME dead but pid file exists" - fi - ;; - force-quit) - echo -n "Terminating $NAME " - if [ ! -r $PIDFILE ] ; then - echo "warning, no pid file found - $NAME is not running ?" - exit 1 - fi - kill -TERM `cat $PIDFILE` - wait_for_pid removed $PIDFILE - if [ -n "$try" ] ; then - echo " failed" - exit 1 - else - echo " done" - fi - ;; - restart) - $0 stop - $0 start - ;; - *) - echo "Usage: $0 {start|stop|status|force-quit|restart}" - exit 1 - ;; -esac - -exit $? \ No newline at end of file