axetroy / sms-boom

利用chrome的headless模式,模拟用户注册进行短信轰炸机
489 stars 146 forks source link

非ctrl+c方法关闭进程后会残留其它进程 #23

Closed liuxhit closed 6 years ago

liuxhit commented 6 years ago

环境:

[root@vultr ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)

在vultr上购买的vps,系统为Cent7 x64,新建boom用户搭建了node.js环境并运行sms-boom ssh连接工具为xshell,运行方法为第一种:以CLI命令运行

问题: 关于如何停止sms-boom运行: 在unix系统上,按Ctrl+C可以停止进程并有退出进程的提示,且后台无其它子进程。 但在直接关闭ssh连接后,再次连接vps并用ps查看进程,会发现smsboomer的进程已经不存在,但是后台还残留其它的进程。

比如: 1.以用户boom运行软件:

[boom@vultr ~]$ smsboomer 151XXXXXXXX
process 4346 start.
[INFO]: 打开浏览器...
[INFO]: 进入到 聚合数据 https://www.juhe.cn/register

启动成功后查询进程,发现以sms-boom为父进程创建了子进程:(子进程有许多个)

[root@vultr ~]# ps -ef | grep 4346
boom      4346  4325  2 19:15 pts/0    00:00:01 node /home/boom/node-v9.2.0/bin/smsboomer 151XXXXXXXX
boom      4356  4346  3 19:15 ?        00:00:01 /home/boom/node-v9.2.0/lib/node_modules/smsboomer/node_modules/puppeteer/.local-chromium/linux-515411/chrome-linux/chrome --disable-background-networking --disable-background-timer-throttling --disable-client-side-phishing-detection --disable-default-apps --disable-extensions --disable-hang-monitor --disable-popup-blocking --disable-prompt-on-repost --disable-sync --disable-translate --metrics-recording-only --no-first-run --remote-debugging-port=0 --safebrowsing-disable-auto-update --enable-automation --password-store=basic --use-mock-keychain --user-data-dir=/tmp/puppeteer_dev_profile-sZ8T8i --headless --disable-gpu --hide-scrollbars --mute-audio

接着sms-boom被非正常关闭(比如我直接关闭ssh窗口),然后再次登录查看后台进程:

[root@vultr ~]# ps -ef | grep 4356
boom      4356     1  2 19:15 ?        00:00:02 /home/boom/node-v9.2.0/lib/node_modules/smsboomer/node_modules/puppeteer/.local-chromium/linux-515411/chrome-linux/chrome --disable-background-networking --disable-background-timer-throttling --disable-client-side-phishing-detection --disable-default-apps --disable-extensions --disable-hang-monitor --disable-popup-blocking --disable-prompt-on-repost --disable-sync --disable-translate --metrics-recording-only --no-first-run --remote-debugging-port=0 --safebrowsing-disable-auto-update --enable-automation --password-store=basic --use-mock-keychain --user-data-dir=/tmp/puppeteer_dev_profile-sZ8T8i --headless --disable-gpu --hide-scrollbars --mute-audio
boom      4359  4356  0 19:15 ?        00:00:00 /home/boom/node-v9.2.0/lib/node_modules/smsboomer/node_modules/puppeteer/.local-chromium/linux-515411/chrome-linux/chrome --type=zygote --headless --headless
boom      4431  4356  0 19:16 ?        00:00:00 /home/boom/node-v9.2.0/lib/node_modules/smsboomer/node_modules/puppeteer/.local-chromium/linux-515411/chrome-linux/chrome --type=gpu-process --headless --headless --gpu-preferences=GAAAAAAAAAAAAQAAAQAAAAAAAAAAAGAA --use-gl=swiftshader-webgl --gpu-vendor-id=0xffff --gpu-device-id=0xffff --gpu-driver-vendor=Google Inc. --gpu-driver-version=3.3.0.2 --gpu-driver-date=2017/04/07 --headless --service-request-channel-token=68E6B6230A3C8FE2C6046F3EC4D773D6

发现sms-boom进程已被关闭,但其创建的子进程仅是PPID被改为了1,并未被关闭(上述只是按PID搜索,若是用ps -ef | grep smsboomer可查到更多子进程)

解决方法: 临时解决方法为批量把残留进程kill掉 ps -ef | grep smsboomer | grep -v grep | awk '{print $2}' | xargs kill -9

welcome[bot] commented 6 years ago

Thanks for opening your first issue here! Be sure to follow the issue template!

axetroy commented 6 years ago

感谢反馈。 应该是chromium的进程没有随着主父级进程关掉。

我会尽快修复。

axetroy commented 6 years ago

后续会更新,当父进程关掉之后,把整个进程树给kill掉

badbubble commented 6 years ago

@liu-xun @axetroy 您好 我同样也是用 vultr

[root@vultr ~]# cat /etc/redhat-release
CentOS release 6.9 (Final)

我执行以下命令来安装nodejs 和 npm

yum info epel-release
sudo yum install epel-release
sudo yum install nodejs
sudo yum install npm

安装好的版本信息

[root@vultr ~]# node -v
v0.10.48
[root@vultr ~]# npm -v
1.3.6

我在执行PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1 npm install smsboomer -g遇到错误

npm http GET https://registry.npmjs.org/smsboomer
npm http 200 https://registry.npmjs.org/smsboomer
npm http GET https://registry.npmjs.org/smsboomer/-/smsboomer-1.4.0.tgz
npm http 200 https://registry.npmjs.org/smsboomer/-/smsboomer-1.4.0.tgz
npm http GET https://registry.npmjs.org/axios
npm http GET https://registry.npmjs.org/caporal
npm http GET https://registry.npmjs.org/chalk
npm http GET https://registry.npmjs.org/fs-extra
npm http GET https://registry.npmjs.org/lodash
npm http GET https://registry.npmjs.org/p-retry
npm http GET https://registry.npmjs.org/p-timeout
npm http GET https://registry.npmjs.org/progress
npm http GET https://registry.npmjs.org/puppeteer
npm http GET https://registry.npmjs.org/axetroy/context
npm http GET https://registry.npmjs.org/axetroy/graceful
npm http 304 https://registry.npmjs.org/fs-extra
npm http 304 https://registry.npmjs.org/lodash
npm http 304 https://registry.npmjs.org/chalk
npm http 304 https://registry.npmjs.org/progress
npm http 304 https://registry.npmjs.org/axios
npm http 304 https://registry.npmjs.org/caporal
npm http 304 https://registry.npmjs.org/p-timeout
npm http 304 https://registry.npmjs.org/p-retry
npm http 304 https://registry.npmjs.org/puppeteer
npm http 404 https://registry.npmjs.org/axetroy/context
npm ERR! TypeError: Cannot read property 'latest' of undefined
npm ERR!     at next (/usr/lib/node_modules/npm/lib/cache.js:687:35)
npm ERR!     at /usr/lib/node_modules/npm/lib/cache.js:675:5
npm ERR!     at saved (/usr/lib/node_modules/npm-registry-client/lib/get.js:148:7)
npm ERR!     at /usr/lib/node_modules/graceful-fs/polyfills.js:133:7
npm ERR!     at Object.oncomplete (fs.js:108:15)
npm ERR! If you need help, you may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>

npm ERR! System Linux 2.6.32-696.10.2.el6.x86_64
npm ERR! command "node" "/usr/bin/npm" "install" "smsboomer" "-g"
npm ERR! cwd /root
npm ERR! node -v v0.10.48
npm ERR! npm -v 1.3.6
npm ERR! type non_object_property_load
npm http 404 https://registry.npmjs.org/axetroy/graceful
npm ERR! TypeError: Cannot read property 'latest' of undefined
npm ERR!     at next (/usr/lib/node_modules/npm/lib/cache.js:687:35)
npm ERR!     at /usr/lib/node_modules/npm/lib/cache.js:675:5
npm ERR!     at saved (/usr/lib/node_modules/npm-registry-client/lib/get.js:148:7)
npm ERR!     at /usr/lib/node_modules/graceful-fs/polyfills.js:133:7
npm ERR!     at Object.oncomplete (fs.js:108:15)
npm ERR! If you need help, you may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>

npm ERR! System Linux 2.6.32-696.10.2.el6.x86_64
npm ERR! command "node" "/usr/bin/npm" "install" "smsboomer" "-g"
npm ERR! cwd /root
npm ERR! node -v v0.10.48
npm ERR! npm -v 1.3.6
npm ERR! type non_object_property_load
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /root/npm-debug.log
npm ERR! not ok code 0

是我配置的不对吗? 我之前没接触过nodejs。。。。

axetroy commented 6 years ago

@ETCartman 你好,这个是另外一个问题了。请不要在这个issue下发布,可以新开一个。

你的问题应该是node和npm版本不对的问题, 另外,不要全局安装nodejs

badbubble commented 6 years ago

ok

axetroy commented 6 years ago

Update:

2.0.0版本会在退出进程时,尝试杀掉子进程

过几天会更新