我刚刚注意到Linux上进程终止(来自多处理库)方法的问题.我有应用程序使用多处理库,但…当我在Windows上调用终止函数时,一切都很好,另一方面,Linux失败了这个解决方案.作为过程杀戮的替代,我被迫使用

os.system('kill -9 {}'.format(pid))

我知道这不是太聪明,但它确实有效.所以我只是想知道为什么这段代码在Windows上运行,但在Linux上运行失败.

例:

from multiprocessing import Process

import os

process=Process(target=foo,args=('bar',))

pid=process.pid

process.terminate() # works on Windows only

...

os.sytem('kill -9 {}'.format(pid)) # my replacements on Linux

我的配置:python 3.2.0 build 88445; Linux的2.6.32-Debian的6.0.4

这是我的代码中的示例.我希望这就足够了.

def start_test(timestamp,current_test_suite,user_ip):

global_test_table[timestamp] = current_test_suite

setattr(global_test_table[timestamp],"user_ip",user_ip)

test_cases = global_test_table[timestamp].test_cases_table

test_cases = test_cases*int(global_test_table[timestamp].count + 1)

global_test_table[timestamp].test_cases_table = test_cases

print(test_cases)

print(global_test_table[timestamp].test_cases_table)

case_num = len(test_cases)

Report.basecounter = Report.casecounter = case_num

setattr(global_test_table[timestamp],"case_num",case_num)

setattr(global_test_table[timestamp],"user_current_test",0)

try:

dbobj=MySQLdb.connect(*dbconnector)

dbcursor=dbobj.cursor()

dbcursor.execute(sqlquery_insert_progress.format(progress_timestamp = str(timestamp),user_current_test = global_test_table[timestamp].user_current_tes$

except :...

for i in range(case_num):

user_row = global_test_table[timestamp]

current_test_from_tests_table = user_row.test_cases_table[i]

unittest.TextTestRunner(verbosity=2).run(suite(CommonGUI.get_address(CommonGUI,current_test_from_tests_table[1],current_test_from_tests_table[2],user$

global_test_table[timestamp].user_current_test = i + 1

try:

dbobj=MySQLdb.connect(*dbconnector)

dbcursor=dbobj.cursor()

dbcursor.execute(sqlquery_update_progress.format(progress_timestamp = str(timestamp),user_current_test = global_test_table[timestamp].user_current$

except :...

@cherrypy.expose()

def start_test_page(self,**test_suite):

timestamp = str(time.time())

user_ip = cherrypy.request.remote.ip

if on_server():

sys.stdout=sys.stderr=open("/var/log/cherrypy/test_gui/{file}.log".format(file=timestamp),"a")

current_test_suite = self.parse_result(**test_suite)

#global_test_table[timestamp] = current_test_suite

#setattr(global_test_table[timestamp],user_ip)

user_test_process = Process(target=start_test,args=(timestamp,user_ip))

users_process_table[timestamp] = user_test_process

user_test_process.start()

return '''{"testsuite_id" : "''' + str(timestamp) + '''"}'''

@cherrypy.expose()

def stop_test(self,timestamp):

if timestamp in users_process_table:

if on_server():

user_process_pid = users_process_table[timestamp].pid

os.system("kill -9 " + str(user_process_pid))

else:

users_process_table[timestamp].terminate()

del users_process_table[timestamp]

else:

return "No process exists"

linux停止python程序_python – Linux上的多处理进程终止失败相关推荐

  1. python监控linux运行程序_python linux监控程序

    Pyinotify – Linux中实时监控文件系统更改 Pyinotify 是一个简单而实用的 Python 模块,它用于通过 inotify 实时监控Linux文件系统的更改.用于在Linux中实 ...

  2. Linux中Python程序CPU占用高排查

    Linux中Python程序CPU占用高排查,Linux中Python程序CPU占用高排查,Linux中Python程序CPU占用高排查 kafka-python==2.0.2和 gevent 新版本 ...

  3. 【Linux】GCC程序开发工具(上)

    00. 目录 文章目录 00. 目录 01. GNU工具概述 02. 常用文本文件 03. 常用二进制文件 04. Binutils工具集 05. GCC工具 06. 附录 01. GNU工具概述 ​ ...

  4. Linux 安装python 3.8(Linux 的版本为 Centos 7)

    Linux 安装python 3.8(Linux 的版本为 Centos 7) 前言:喜欢傻瓜式复制粘贴的,不会思考安装过程中报错的,不建议看这个,可以去看看其他的,看了安装不了,又喷人,自己不会,解 ...

  5. python编程在哪里写程序-第一个Python程序——在屏幕上输出文本

    本节我将给大家介绍最简单.最常用的 Python 程序--在屏幕上输出一段文本,包括字符串和数字. Python 使用 print 函数在屏幕上输出一段文本,输出结束后会自动换行. 在屏幕上输出字符串 ...

  6. 区分大小屏幕_第一个Python程序——在屏幕上输出文本

    本节我将给大家介绍最简单.最常用的 Python 程序--在屏幕上输出一段文本,包括字符串和数字.Python 使用 print 函数在屏幕上输出一段文本,输出结束后会自动换行. 在屏幕上输出字符串 ...

  7. python程序-第一个Python程序——在屏幕上输出文本

    本节我将给大家介绍最简单.最常用的 Python 程序--在屏幕上输出一段文本,包括字符串和数字. Python 使用 print 函数在屏幕上输出一段文本,输出结束后会自动换行. 在屏幕上输出字符串 ...

  8. linux中将python程序挂起命令

    在python程序所在文件夹下执行:nohup python *.py & linux中查看python后台运行的程序:ps -ef | grep python

  9. linux 升级python 3.5,Linux下升级Python到3.5.2版本

    本文主要介绍在Linux(CentOS)下将Python的版本升级为3.5.2的方法 众所周知,在2020年python官方将不再支持2.7版本的python,所以使用3.x版本的python是必要的 ...

最新文章

  1. mysql 负载 查看_Mysql-命令查询当前正在负载运行的SQL语句
  2. 【Paper】2019_Consensus Control of Multiple AUVs Recovery System Under Switching Topologies and Time D
  3. python until语句_详解Lua中repeat...until循环语句的使用方法
  4. python脚本编程100例_python100例,python经典例题
  5. App后台开发运维和架构实践学习总结(9)——三种常见的API设计错误及解决方案
  6. MySQL判断字符串是否是数字
  7. jira7.3.6添加导出excel的按钮
  8. Apache 配置SSL网站
  9. OpenGL 高质量纹理过滤的实例
  10. matlab continue语句,continue语句
  11. JS逆向 2021-8-16 网易云音乐 params、encSecKey参数
  12. 关于黑马视频String 与int之间相互转化
  13. Unity学习笔记14——导入视频格式问题(QuickTime player)
  14. 解决微信浏览器video标签自动播放视频失效
  15. 年薪40W毕业生大厂面试题合集,学完之后你不会拿不到offer
  16. 算法基础题:木棍切割问题
  17. oracle如何清理sys_lob,清理 oracle lobsegment | 学步园
  18. 项目没有亮点,如何应对面试官的提问?
  19. 【蚁狮算法】《The Ant Lion Optimizer》原文翻译(附源代码)
  20. 相容或,排斥或的相关符号化问题,即排斥或在符号化时一定是只出现∧吗

热门文章

  1. DefaultListableBeanFactory 对配置lazy-init 属性单态Bean 的预实例化
  2. 用户操作-登录流程分析
  3. 异常-主动抛出异常案例演练
  4. 内置方法-del方法和对象的生命周期
  5. C语言snmp编程视频,在Ubuntu18.04中关于C语言使用netsnmp进行snmp编程
  6. alchemy php,Python下SQLAlchemy的简单介绍
  7. wps怎么投递简历发到boss直聘_央视新闻联合BOSS直聘带“岗”年薪超82亿元
  8. java.util.function包
  9. 【图文详解】JAVA中的转义字符
  10. 直流无刷电机制动的三种方式