无法打开“/var/run/tor/tor0.pid”进行写入:多次实例后权限被拒绝
Unable to open "/var/run/tor/tor0.pid" for writing: Permission denied after multiple instances
我在一个 tor 服务器上工作,它需要加载两个实例(一个隐藏服务和一个中继)。
当我使用一个实例时它工作正常......但是 this tutorial 我在 pid
上有权限问题
使用原始守护进程它工作正常我没有任何权限问题...
但是如果我使用 this one 添加这个:
# --- Multi-instance init ---
config="/etc/tor"
arrrgs="$ARGS"
command=
shift
instances=$*
instances() {
case $instances in
"")
for c in $config/*.cfg
do
base=${c##*/}
test -f "$c" && echo ${base%.cfg}
done
;;
*)
echo "$instances"
;;
esac
}
case "$command" in
start|stop|restart|reload|force-reload|status)
highest=0
for i in $(instances)
do
NAME=$i
DESC=$i
TORPID="$TORPIDDIR/$i.pid"
ARGS="$arrrgs -f $config/$i.cfg"
execute $command
status=$?
test $status -gt $highest && highest=$status
done
exit $highest
;;
*)
execute
exit 1
;;
esac
我在 notice0/1.log
中有错误
9 月 29 日 16:47:10.000 [警告] 无法打开“/var/run/tor/tor0.pid”进行写入:权限被拒绝
所以我-无法停止 tor 的实例...这怎么可能?如何纠正它?第一个守护进程(原始守护进程)和新守护进程之间的权限有什么区别...
非常感谢
编辑:
如果在配置中我有 PidFile /var/run/tor/tor.pid 它工作没有权限问题但是如果我有 PidFile /var/run/tor/tor0.pid 权限错误...什么??
我只是将所有 pid 文件移动到 /var/lib/tor/tor*.pid,它现在可以工作了...
PATH=/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/bin/tor
NAME=tor
DESC="tor daemon"
TORLOGDIR=/var/log/tor
TORPIDDIR=/var/lib/tor
TORPID=$TORPIDDIR/tor.pid
DEFAULTSFILE=/etc/default/$NAME
并在配置中修改
## The directory for keeping all the keys/etc. By default, we store
## things in $HOME/.tor on Unix, and in Application Data\tor on Windows. DataDirectory /var/lib/tor/0
PidFile /var/lib/tor/tor0.pid
Log notice file /var/log/tor/notices0.log
如果有人知道它为什么现在可以工作,那就太好了。
谢谢
我在一个 tor 服务器上工作,它需要加载两个实例(一个隐藏服务和一个中继)。 当我使用一个实例时它工作正常......但是 this tutorial 我在 pid
上有权限问题使用原始守护进程它工作正常我没有任何权限问题...
但是如果我使用 this one 添加这个:
# --- Multi-instance init ---
config="/etc/tor"
arrrgs="$ARGS"
command=
shift
instances=$*
instances() {
case $instances in
"")
for c in $config/*.cfg
do
base=${c##*/}
test -f "$c" && echo ${base%.cfg}
done
;;
*)
echo "$instances"
;;
esac
}
case "$command" in
start|stop|restart|reload|force-reload|status)
highest=0
for i in $(instances)
do
NAME=$i
DESC=$i
TORPID="$TORPIDDIR/$i.pid"
ARGS="$arrrgs -f $config/$i.cfg"
execute $command
status=$?
test $status -gt $highest && highest=$status
done
exit $highest
;;
*)
execute
exit 1
;;
esac
我在 notice0/1.log
中有错误9 月 29 日 16:47:10.000 [警告] 无法打开“/var/run/tor/tor0.pid”进行写入:权限被拒绝
所以我-无法停止 tor 的实例...这怎么可能?如何纠正它?第一个守护进程(原始守护进程)和新守护进程之间的权限有什么区别...
非常感谢
编辑:
如果在配置中我有 PidFile /var/run/tor/tor.pid 它工作没有权限问题但是如果我有 PidFile /var/run/tor/tor0.pid 权限错误...什么??
我只是将所有 pid 文件移动到 /var/lib/tor/tor*.pid,它现在可以工作了...
PATH=/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/bin/tor
NAME=tor
DESC="tor daemon"
TORLOGDIR=/var/log/tor
TORPIDDIR=/var/lib/tor
TORPID=$TORPIDDIR/tor.pid
DEFAULTSFILE=/etc/default/$NAME
并在配置中修改
## The directory for keeping all the keys/etc. By default, we store
## things in $HOME/.tor on Unix, and in Application Data\tor on Windows. DataDirectory /var/lib/tor/0
PidFile /var/lib/tor/tor0.pid
Log notice file /var/log/tor/notices0.log
如果有人知道它为什么现在可以工作,那就太好了。
谢谢