vbot icon indicating copy to clipboard operation
vbot copied to clipboard

请教一些问题

Open charlesyq opened this issue 7 years ago • 6 comments

1 有木有提供杀死进程的方法,目前用同一个session 执行两次我看后台进程并不会杀死之前的进程 ,只能通过sh脚本控制么 2 如果要用swoole api 的话能否用同一个端口 根据session 区分 哪个用户 ,可以通过修改哪些文件实现这个功能呢

charlesyq avatar Jun 20 '17 05:06 charlesyq

杀死进程可以使用 posix_kill 函数发送信号给进程来达到目的。 image 大概这么用:

posix_kill($pid,$sig);

获取当前进程 pid 可以用 posix_getpid()。 更多 进程操作函数可以搜索 posix php 自行挖掘。 1、vbot本身并没有检查是否有另一进程使用同一个session运行的功能,你需要自己判断,杀死进程可以参考上面的方法。 2、第二个问题我之前也想过,目前还没有相出很好的实现方案,不过按理说应该可以实现,这问题等 HanSon 大佬来解答吧。

qbhy avatar Jun 20 '17 06:06 qbhy

第一个问题 我修改了下运行脚本 ,用laravel command 写的,最后一步执行的脚本有些不一样,但是原理差不多 代码如下

#!/bin/bash
if [ -f /root/.bash_profile ];
then
  source /root/.bash_profile
fi
#session参数
session=$1
#目录位置
curdir=$(cd `dirname $0`; pwd)

# php位置
#phpbin=/usr/local/php7.0.14/bin/php
phpbin=/Applications/XAMPP/bin/php-7.0.13

cd $curdir

NAME="app:ini_webot --session=${session}"
ID=`ps -ef | grep "$NAME" | grep -v "grep" | awk '{print $2}'`

echo $ID

echo "---------------"
for id in $ID
do
kill -9 $id
echo "killed $id"
done
echo "---------------"

${phpbin} artisan $NAME  >> ${curdir}/storage/logs/${session}.log &

@第二个问题貌似没找到更好的解决办法,感觉只能通过自动分配端口并记录的方式去做了,不知道
@HanSon 大佬有什么更好的建议么

charlesyq avatar Jun 22 '17 02:06 charlesyq

这个最好解决方法就是从 vbot的底层代码修改,这个暂时没这么快

Hanson avatar Jun 22 '17 03:06 Hanson

@HanSon 除了端口问题,可能还会碰到其他问题么,端口问题通过自动分配端口也可以解决的,应该不同端口的话相互就互不影响了吧 还有observe 里边的group.json 是做什么用的呀,这个好像也没区分不同session

charlesyq avatar Jun 22 '17 03:06 charlesyq

group.json 只是个例子告诉你们可以这样用

如果在多用户场景,一个用户一个端口不太现实

Hanson avatar Jun 22 '17 03:06 Hanson

请问如何给指定的微信群推送消息?

huanglike avatar Apr 04 '18 08:04 huanglike