V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  hanssx  ›  全部回复第 56 页 / 共 59 页
回复总数  1176
1 ... 48  49  50  51  52  53  54  55  56  57 ... 59  
2020-02-09 11:55:40 +08:00
回复了 hanssx 创建的主题 Linux Linux Mint 自带 Python 版本能否删除或安装新的版本?
我研究研究哈,多谢两位
2020-02-08 10:12:53 +08:00
回复了 hanssx 创建的主题 Linux Linux mint xfce 桌面,多个 dock 软件有问题
@okampfer 哥,你说的非常稳定是指 XFCE 还是 cinnamon,我的笔记本是 T470,准备装 Mint 19.3,选择困难症犯了,想了想,新本装 cinnamon,旧本装 xfce 吧。话说 xfce 确实更新慢呀,2015 年后面就 2019 年更新了一版。。。
2020-02-07 10:38:48 +08:00
回复了 hanssx 创建的主题 Linux Linux mint xfce 桌面,多个 dock 软件有问题
@jzq526 linux mint 最新版 19.3 不支持 KDE 桌面啦,要不我也用 KDE 啦,面板( Panel )我看了一下,发现 Add Item 不能添加自定义的程序,感觉还是差点意思。
2020-02-07 09:52:15 +08:00
回复了 hanssx 创建的主题 Linux Linux mint xfce 桌面,多个 dock 软件有问题
@caomu 多谢 3 楼兄弟,确实是这个原因。

@Cooky xfce 咋不稳定了,官方说最稳定啊,占用资源最少,我用着确实挺流畅的。

@tangbao 我就是用的 vmware workstation 15 搭建的虚拟机哟。

@exploretheworld 兄弟,这个在哪儿设置一下呀? dash to dock,我看没自带,需要装,dash to dock 这个我感觉挺好的。
2020-02-06 23:22:16 +08:00
回复了 hanssx 创建的主题 Linux Linux mint xfce 桌面,多个 dock 软件有问题
好像真是 xfce 的问题,我换了 cinnamon,就可以了。。
2020-02-04 22:58:39 +08:00
回复了 EatMi 创建的主题 Linux 求助 manjaro KDE 怎么设置整个系统的全局代理?
方法一:试验成功,需重启
https://wiki.archlinux.org/index.php/NetworkManager#Proxy_settings
yay -S proxydriver
vim /etc/proxydriver.d/ssid.conf

方法二:未试验成功,Pac 原理也没搞明白
Pac 全局代理
sudo pip install genpac
# 在当前目录(比如:/home/ocean/develop)下生成 autoproxy.pac
genpac --format=pac --pac-proxy="SOCKS5 127.0.0.1:1080" --pac-precise --output="autoproxy.pac"

sudo nano /etc/environment
#添加下面任意一行
auto_proxy="file:///home/ocean/develop/autoproxy.pac"
AUTO_PROXY="file:///home/ocean/develop/autoproxy.pac"
我之前写的用 join 的方法不对,join 方法虽然也有 wait 的功能,但是如果单个进程 join 还好,多个进程的话可能在 join 之前进程就已经结束变为僵尸进程,现在的方法是处理 SIGCHILD 信号,这样保证不会有僵尸进程了,至于还会不会有其他问题,下下周再跑程序时反馈,感谢各位的帮助。如果有更好的办法,请告知,红包以表谢意。
这回复不支持 markdown 也有点难受。
@ytymf 确实是的,这个父进程是 celery worker 的,如果不用 celery,这套东西是没问题的,我修改了如下代码:
```
def run(self):
self.scan_list = sorted(self.scan_list) # ['http://2.2.2.2:22', 'http://www.baidu.com', ......]
for url in self.scan_list:
self.queue.put(url)
time.sleep(3) # KLD 将一个对象放入一个空队列后,可能需要极小的延迟,队列的方法 empty()才会返回 False。 参考: https://docs.python.org/zh-cn/3/library/multiprocessing.html
self.scan_start()
```
改为
```
def run(self):
self.scan_list = sorted(self.scan_list) # ['http://2.2.2.2:22', 'http://www.baidu.com', ......]
scan_list_len = len(self.scan_list)
# self.total_domain_cnt = len(self.scan_list)
for url in self.scan_list:
self.queue.put(url)
while self.queue.qsize() != scan_list_len:
time.sleep(3) # KLD 将一个对象放入一个空队列后,可能需要极小的延迟,队列的方法 empty()才会返回 False。 参考: https://docs.python.org/zh-cn/3/library/multiprocessing.html
self.scan_start()
```

```
def scan_start(self):
"""
进程池扫描启动
:return:
"""
for i in range(self.process_count):
t = WebFingerprintDiscernProcess(self.config, self.queue, self.lock)
t.daemon = True
t.start()
self.queue.join()
```
改为
```
def scan_start(self):
"""
进程池扫描启动
:return:
"""
process_list = []
for i in range(self.process_count):
# As far as possible one should try to avoid shifting large amounts of data between processes.
# https://docs.python.org/3/library/multiprocessing.html#multiprocessing-programming
t = WebFingerprintDiscernProcess(self.config, self.queue, self.lock)
t.daemon = True
t.start()
process_list.append(t)
for p in process_list:
p.join()
self.queue.join()
```
不过我的用法确实太奇怪,celery 官方是不推荐在里面使用多进程的,billiard 看 issue 里面好像也要换的意思。
@lolizeppelin 额,spawn 模式启动不起来 celery worker,师父你知道哪儿的问题吗,能说一下吗。
你说的基础知识,我理解可能是信号处理,你是说子进程结束的时候发送 SIGCHILD KILL 之类的信号,如果父进程不处理就会使子进程变为僵尸进程是吧,这个我是知道的,我也避免了,加上了子进程.join()
@lolizeppelin 那个是这样的,本身使用 multiprocessing 没啥问题,在 celery worker 里面使用就会有问题,celery 也给了一个 billiard,算是 multiprocessing 的 patch。
@ytymf 试了一下,celery worker 直接启动不起来,考虑用 canvas 重构一下,还是感谢师父,学到了。
import billiard as multiprocessing
multiprocessing.set_start_method('spawn')
@ytymf 多谢师父,晚上我改一下试试。
@ytymf 多谢指教,学到了。我这个主进程是 celery worker 产生的进程,我代码中并没有用线程,更没有用多线程。僵尸进程产生的原因应该子进程结束之后,父进程仍然存在且没有 wait 或 communicate 子进程,也就是没处理子进程发来的 SIGCHILD KILL 那个信号。
@hhbcarl 谢谢师父,你说的这个 canvas 之前有了解,但是现在项目代码不太容易改,周末尝试一下。
----------------------------------------------------------------------------------------------------------------------------------------
@ClericPy 是僵尸进程,Z 代表 Zombie,僵尸进程产生的原因是因为子进程结束之后,父进程仍然存在且没有 wait 或 communicate 子进程,产生原因我倒是清楚,只是不明白为什么一开始就有子进程结束,因为队列里面的东西很多,不可能一开始子进程就结束的。
----------------------------------------------------------------------------------------------------------------------------------------
@ytymf “multiprocessing 一定要确保父进程是单线程的”,这个是啥意思呀,是确保父进程是单进程吧? celery worker 里面看确实是单进程。
2019-10-25 11:58:04 +08:00
回复了 zbl430 创建的主题 Linux QQ For Linux 我哭了,官方版
要是有企业微信就好了。
2019-10-21 17:30:02 +08:00
回复了 eteryao 创建的主题 Python celery +redis missed heartbeat from celery
换用 rmq 吧,redis 不建议使用在生产环境中。
前几天我使用 celery v4.3 + rmq 3.7.7 也遇到了你这问题,好像是网络原因,你不会和我一样执行得是扫描任务吧?
话说这个问题不应该是 INFO 吗?不是 ERROR 吧。
可以尝试把 heartbeat 关掉。
https://stackoverflow.com/questions/21132240/celery-missed-heartbeat-on-node-lost
2019-09-09 11:33:48 +08:00
回复了 hanssx 创建的主题 Python celery worker 多线程执行完后卡住假死
@neoblackcap 嗯,我使用得是你说的 nmap 的 Python 封装库,源码里面使用得也是 subprocess.Popen(),额,需要时可加我扣扣,随时欢迎师父加我。
2019-09-08 10:27:04 +08:00
回复了 hanssx 创建的主题 Python celery worker 多线程执行完后卡住假死
已确定为 logging 死锁问题,50 块钱由崔庆才师父和 @neoblackcap 师父平分,
@neoblackcap 师父,加我一下扣扣 9 六 14 六 2392,把支付宝账号发我即可。
2019-09-04 22:49:49 +08:00
回复了 hanssx 创建的主题 Python celery worker 多线程执行完后卡住假死
多进程可以解决这个问题,之前 @崔庆才师父说可能是 logging 死锁的问题,很有可能,待下一步确定。
1 ... 48  49  50  51  52  53  54  55  56  57 ... 59  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   941 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 24ms · UTC 19:59 · PVG 03:59 · LAX 11:59 · JFK 14:59
Developed with CodeLauncher
♥ Do have faith in what you're doing.