我正在使用 Tor 和 PHP,目前一切正常。但是,当我尝试从 php 启动 Tor 时,有时会抛出错误,因为 Tor 当前正在运行,所以我一直想知道是否有任何方法可以检查 Tor 的状态(是否运行)
我只能使用SOCKS5协议(protocol)或Linux CLI;这是我唯一的选择。
注意:此功能连接到 Tor(有效)。
function init()
{
//Connect to Tor
$socket = fsockopen($this->proxyIp, $this->proxyPort);
fwrite($socket, 'AUTHENTICATE' . PHP_EOL);
}
最佳答案
一般来说,Unix/Linux 守护进程通常使用锁定文件(通常位于 /var/run
中)来实现“已运行”检查。您可以使用 file_exists()
检查锁定文件是否存在。当然,这不能用于检测进程是否崩溃(从而检测进程在任何给定时刻是否实际上正在运行); checking the process table可能有必要。
具体到 Tor,快速的网络搜索似乎表明您不必这样做。 Tor 定位 Unix domain socket位于 /var/run/tor/control
(并监听 TCP 端口 9051,具体取决于配置)以允许其他程序控制它。尝试通过该套接字连接到 Tor(使用 PHP 的 socket functions 和 Tor Control Protocol )可能会起作用。
关于php - 如何检查 Tor 是否在 PHP 中运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16002029/