无法打开“/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

如果有人知道它为什么现在可以工作,那就太好了。

谢谢