yjqiang / bili2.0

Python3 实现的 bilibili 直播助手(多用户)
MIT License
664 stars 142 forks source link

nohup输出异常 #57

Closed ThunderCross closed 5 years ago

ThunderCross commented 5 years ago

在shell里用 nohup python3 -u run.py > server.log 2>&1 &

然后疯狂的刷下面这段,几秒钟文件就能上G。


| 欢迎使用本控制台       | |1 输出本次统计数据       | |2 查看目前拥有礼物的统计    | |3 查看持有勋章状态       | |4 检查主站今日任务的情况    | |5 检查直播分站今日任务的情况  | |6 获取主站个人的基本信息    | |7 获取直播分站个人的基本信息  | |8 检查风纪委今日自动投票的情况 | |11当前拥有的扭蛋币       | |12开扭蛋币(一、十、百)    | |13直播间的长短号码的转化    | |14发送弹幕           | |15切换监听的直播间       | |16控制弹幕的开关        | |21赠指定总数的辣条到房间    | |22银瓜子全部购买辣条并送到房间 |  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

yjqiang commented 5 years ago

这个东西上个大版本也有人报告,我看一下吧……

yjqiang commented 5 years ago

https://github.com/yjqiang/bilibili-live-tools/issues/104

yjqiang commented 5 years ago

很奇怪,我是无法复现无穷刷这个问题的,反而出现这个东西。如果下面这个的话,估计原因就是nohup会发送一个信号,关闭input。这样的话建议关掉console这个线程


nohup: ignoring input Traceback (most recent call last): input() OSError: [Errno 9] Bad file descriptor

yjqiang commented 5 years ago

基本可以确定是input这里的问题了。至于无穷刷,猜测可能是不同版本不同处理策略之类的吧,估计同样也是一个原因。这样的话建议关掉控制线程,毕竟nohup了就不需要控制输入了。 @ThunderCross

ThunderCross commented 5 years ago

直接在console里用不会,在xx.sh里面调用就会这样了,可能确实是nohup信号机制的问题吧 那就先这样用着吧 nohup python3 -u run.py > server.log 2>&1 &

yjqiang commented 5 years ago

直接在console里用不会,在xx.sh里面调用就会这样了,可能确实是nohup信号机制的问题吧 那就先这样用着吧 nohup python3 -u run.py > server.log 2>&1 &

直接这么运行的话会关闭,你等一下我试试写个简单的自动处理

yjqiang commented 5 years ago

https://github.com/yjqiang/bili2.0/commit/b0e716563d74c52591f07fd379b055b4a3cd55ef 你测试一下,sh/nohup/直接运行,三种办法都试一下。 @ThunderCross

ThunderCross commented 5 years ago

b0e7165 你测试一下,sh/nohup/直接运行,三种办法都试一下。 @ThunderCross

现在可以了,直接nohup 、sh里 都可以正常输出到日志了。 建议加个sh来 nohup后台运行、tail日志查看 ,方便其它linux用户使用

yjqiang commented 5 years ago

b0e7165 你测试一下,sh/nohup/直接运行,三种办法都试一下。 @ThunderCross

现在可以了,直接nohup 、sh里 都可以正常输出到日志了。 建议加个sh来 nohup后台运行、tail日志查看 ,方便其它linux用户使用

。。。感觉这玩意儿应该没啥必要,毕竟nohup一行就行了,日志查看也可以搜索,目前不觉得有什么必要。

love4taylor commented 5 years ago

systemd 似乎依旧

Feb 20 18:37:10 love4taylor.me python3[236202]: ____________________________
Feb 20 18:37:10 love4taylor.me python3[236202]: |  欢迎使用本控制台       |
Feb 20 18:37:10 love4taylor.me python3[236202]: |1 输出本次统计数据       |
Feb 20 18:37:10 love4taylor.me python3[236202]: |2 查看目前拥有礼物的统计    |
Feb 20 18:37:10 love4taylor.me python3[236202]: |3 查看持有勋章状态       |
Feb 20 18:37:10 love4taylor.me python3[236202]: |4 检查主站今日任务的情况    |
Feb 20 18:37:10 love4taylor.me python3[236202]: |5 检查直播分站今日任务的情况  |
Feb 20 18:37:10 love4taylor.me python3[236202]: |6 获取主站个人的基本信息    |
Feb 20 18:37:10 love4taylor.me python3[236202]: |7 获取直播分站个人的基本信息  |
Feb 20 18:37:10 love4taylor.me python3[236202]: |8 检查风纪委今日自动投票的情况 |
Feb 20 18:37:10 love4taylor.me python3[236202]: |11当前拥有的扭蛋币       |
Feb 20 18:37:10 love4taylor.me python3[236202]: |12开扭蛋币(一、十、百)    |
Feb 20 18:37:10 love4taylor.me python3[236202]: |13直播间的长短号码的转化    |
Feb 20 18:37:10 love4taylor.me python3[236202]: |14发送弹幕           |
Feb 20 18:37:10 love4taylor.me python3[236202]: |15切换监听的直播间       |
Feb 20 18:37:10 love4taylor.me python3[236202]: |16控制弹幕的开关        |
Feb 20 18:37:10 love4taylor.me python3[236202]: |21赠指定总数的辣条到房间    |
Feb 20 18:37:10 love4taylor.me python3[236202]: |22银瓜子全部购买辣条并送到房间 |
Feb 20 18:37:10 love4taylor.me python3[236202]:  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
Feb 20 18:37:10 love4taylor.me python3[236202]: ____________________________
Feb 20 18:37:10 love4taylor.me python3[236202]: |  欢迎使用本控制台       |
Feb 20 18:37:10 love4taylor.me python3[236202]: |1 输出本次统计数据       |
Feb 20 18:37:10 love4taylor.me python3[236202]: |2 查看目前拥有礼物的统计    |
Feb 20 18:37:10 love4taylor.me python3[236202]: |3 查看持有勋章状态       |
Feb 20 18:37:10 love4taylor.me python3[236202]: |4 检查主站今日任务的情况    |
Feb 20 18:37:10 love4taylor.me python3[236202]: |5 检查直播分站今日任务的情况  |
Feb 20 18:37:10 love4taylor.me python3[236202]: |6 获取主站个人的基本信息    |
Feb 20 18:37:10 love4taylor.me python3[236202]: |7 获取直播分站个人的基本信息  |
Feb 20 18:37:10 love4taylor.me python3[236202]: |8 检查风纪委今日自动投票的情况 |
Feb 20 18:37:10 love4taylor.me python3[236202]: |11当前拥有的扭蛋币       |
Feb 20 18:37:10 love4taylor.me python3[236202]: |12开扭蛋币(一、十、百)    |
Feb 20 18:37:10 love4taylor.me python3[236202]: |13直播间的长短号码的转化    |
Feb 20 18:37:10 love4taylor.me python3[236202]: |14发送弹幕           |
Feb 20 18:37:10 love4taylor.me python3[236202]: |15切换监听的直播间       |
Feb 20 18:37:10 love4taylor.me python3[236202]: |16控制弹幕的开关        |
Feb 20 18:37:10 love4taylor.me python3[236202]: |21赠指定总数的辣条到房间    |
yjqiang commented 5 years ago

@ThunderCross 讲道理 systemd应该与nohup这些一致的,除非你用了其他东西去实现systemd。

yjqiang commented 5 years ago

systemd 似乎依旧

Feb 20 18:37:10 love4taylor.me python3[236202]: ____________________________
Feb 20 18:37:10 love4taylor.me python3[236202]: |  欢迎使用本控制台       |
Feb 20 18:37:10 love4taylor.me python3[236202]: |1 输出本次统计数据       |
Feb 20 18:37:10 love4taylor.me python3[236202]: |2 查看目前拥有礼物的统计    |
Feb 20 18:37:10 love4taylor.me python3[236202]: |3 查看持有勋章状态       |
Feb 20 18:37:10 love4taylor.me python3[236202]: |4 检查主站今日任务的情况    |
Feb 20 18:37:10 love4taylor.me python3[236202]: |5 检查直播分站今日任务的情况  |
Feb 20 18:37:10 love4taylor.me python3[236202]: |6 获取主站个人的基本信息    |
Feb 20 18:37:10 love4taylor.me python3[236202]: |7 获取直播分站个人的基本信息  |
Feb 20 18:37:10 love4taylor.me python3[236202]: |8 检查风纪委今日自动投票的情况 |
Feb 20 18:37:10 love4taylor.me python3[236202]: |11当前拥有的扭蛋币       |
Feb 20 18:37:10 love4taylor.me python3[236202]: |12开扭蛋币(一、十、百)    |
Feb 20 18:37:10 love4taylor.me python3[236202]: |13直播间的长短号码的转化    |
Feb 20 18:37:10 love4taylor.me python3[236202]: |14发送弹幕           |
Feb 20 18:37:10 love4taylor.me python3[236202]: |15切换监听的直播间       |
Feb 20 18:37:10 love4taylor.me python3[236202]: |16控制弹幕的开关        |
Feb 20 18:37:10 love4taylor.me python3[236202]: |21赠指定总数的辣条到房间    |
Feb 20 18:37:10 love4taylor.me python3[236202]: |22银瓜子全部购买辣条并送到房间 |
Feb 20 18:37:10 love4taylor.me python3[236202]:  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
Feb 20 18:37:10 love4taylor.me python3[236202]: ____________________________
Feb 20 18:37:10 love4taylor.me python3[236202]: |  欢迎使用本控制台       |
Feb 20 18:37:10 love4taylor.me python3[236202]: |1 输出本次统计数据       |
Feb 20 18:37:10 love4taylor.me python3[236202]: |2 查看目前拥有礼物的统计    |
Feb 20 18:37:10 love4taylor.me python3[236202]: |3 查看持有勋章状态       |
Feb 20 18:37:10 love4taylor.me python3[236202]: |4 检查主站今日任务的情况    |
Feb 20 18:37:10 love4taylor.me python3[236202]: |5 检查直播分站今日任务的情况  |
Feb 20 18:37:10 love4taylor.me python3[236202]: |6 获取主站个人的基本信息    |
Feb 20 18:37:10 love4taylor.me python3[236202]: |7 获取直播分站个人的基本信息  |
Feb 20 18:37:10 love4taylor.me python3[236202]: |8 检查风纪委今日自动投票的情况 |
Feb 20 18:37:10 love4taylor.me python3[236202]: |11当前拥有的扭蛋币       |
Feb 20 18:37:10 love4taylor.me python3[236202]: |12开扭蛋币(一、十、百)    |
Feb 20 18:37:10 love4taylor.me python3[236202]: |13直播间的长短号码的转化    |
Feb 20 18:37:10 love4taylor.me python3[236202]: |14发送弹幕           |
Feb 20 18:37:10 love4taylor.me python3[236202]: |15切换监听的直播间       |
Feb 20 18:37:10 love4taylor.me python3[236202]: |16控制弹幕的开关        |
Feb 20 18:37:10 love4taylor.me python3[236202]: |21赠指定总数的辣条到房间    |

不太想解决了,你就麻烦一点,每次重启手动nohup吧。

love4taylor commented 5 years ago

systemd 启动脚本没啥问题... 不过还是换回 supervisord 了 233333

➜  bili2.0 git:(master) ✗ cat /lib/systemd/system/bili2.0.service 
[Unit]
Description=Bili 2.0
After=multi-user.target

[Service]
Type=idle
User=love4taylor
Group=love4taylor
WorkingDirectory=/home/love4taylor/scripts/bili2.0
ExecStart=/usr/bin/python3 -B -u run.py

[Install]
WantedBy=multi-user.target
yjqiang commented 5 years ago

行,反正nohup这里是完全解决了。