Linux 安装VerySync微力同步教程

本文最后更新于:2024年6月30日 晚上

1.下载解压

下载verysync,解压到 /home/verysync

编辑 /etc/profile

1
vim /etc/profile

添加verysync的路径,在最后一行加入如下内容

1
export PATH="/home/verysync:$PATH"

保存、退出后执行

1
source /etc/profile

2.创建verysync.service服务启动

1
vim /usr/lib/systemd/system/verysync.service

添加如下内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[Unit]

Description=verysync

After=network.target


[Service]

Type=forking

ExecStart=/home/verysync/vsserver.sh start

ExecReload=/home/verysync/vsserver.sh restart

ExecStop=/home/verysync/vsserver.sh stop

PrivateTmp=true


[Install]

WantedBy=multi-user.target

退出保存,执行

1
systemctl enable verysync

3.创建/vsserver.sh启动命令

1
vi /home/verysync/vsserver.sh

添加如下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#!/bin/bash
cd `dirname $0`

# Your program
APP_NAME=verysync
ARGS='-gui-address 0.0.0.0:8886'
LOG_FILE=./running.log

help(){
echo "Usage: [start|stop|restart|status]"
exit 1
}

is_exist(){
pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}'`
# if progress is exist then return 1,else return 0
if [ -z "${pid}" ]; then
return 1
else
return 0
fi
}

start(){
is_exist
if [ $? -eq 0 ]; then
echo "${APP_NAME} is already running. pid=${pid}"
else
nohup ./${APP_NAME} ${ARGS} > ${LOG_FILE} 2>&1 &
echo "${APP_NAME} is start successfully, use 'log' option to print more info."
fi
}

stop(){
is_exist
if [ $? -eq "0" ]; then
kill -9 $pid
echo "${APP_NAME} is stoped"
else
echo "${APP_NAME} is not running"
fi
}

status(){
is_exist
if [ $? -eq "0" ]; then
echo "${APP_NAME} is running. Pid is ${pid}"
else
echo "${APP_NAME} is NOT running."
fi
}

restart(){
stop
sleep 2
start
}

log(){
tail -n 100 -f ${LOG_FILE}
}

case "$1" in
"start")
start
;;
"stop")
stop
;;
"status")
status
;;
"restart")
restart
;;
"log")
log
;;
*)
help
;;
esac

附录

解决“/bin/bash^M: bad interpreter: No such file or directory”

在执行shell脚本时提示这样的错误主要是由于shell脚本文件是dos格式,即每一行结尾以\r\n来标识,而unix格式的文件行尾则以\n来标识。
查看脚本文件是dos格式还是unix格式的几种办法。
(1)cat -A filename 从显示结果可以判断,dos格式的文件行尾为^M$,unix格式的文件行尾为$。
(2)od -t x1 filename 如果看到输出内容中存在0d 0a的字符,那么文件是dos格式,如果只有0a,则是unix格式。
(3)vi filename 打开文件,执行 : set ff,如果文件为dos格式在显示为fileformat=dos,如果是unxi则显示为fileformat=unix

解决方法:
(1)使用linux命令dos2unix filename,直接把文件转换为unix格式
(2)使用sed命令sed -i "s/\r//" filename 或者 sed -i "s/^M//" filename直接替换结尾符为unix格式
(3)vi filename打开文件,执行 : set ff=unix 设置文件为unix,然后执行:wq,保存成unix格式。


Linux 安装VerySync微力同步教程
https://blog.doracoin.cc/posts/Linux/23118.html
作者
Doracoin
发布于
2018年4月13日
更新于
2024年6月30日
许可协议