首页 > 编程问答 >如何在Linux上的python中以后台模式打开程序?

如何在Linux上的python中以后台模式打开程序?

时间:2024-07-27 16:17:55浏览次数:10  
标签:python linux subprocess background-process

我需要在 Linux 上以后台模式使用 python 打开另一个程序。

我尝试过 subprocess.call("your command") 但它不是后台模式。 并且 os.startfile("file") 在Linux 上不起作用。


请帮助我。


可以使用 Python 的 subprocess 模块在 Linux 上以后台模式打开程序。方法如下:

1. 使用 subprocess.Popen :

Popen 函数允许你以更大的灵活性执行子进程,包括后台执行。要以后台模式运行命令,请将 Popen start_new_session 参数设置为 True

```python import subprocess

process = subprocess.Popen("your command", shell=True, start_new_session=True) ```

解释:

  • "your command" : 你想要执行的命令,例如 "firefox www.google.com"
  • shell=True : 使用系统 shell 执行命令。
  • start_new_session=True : 在新的会话中启动进程,使其在后台运行。

2. 使用 & 符号 (通过 shell):

在 Linux shell 中, & 符号用于将命令放到后台运行。你可以在 Python 中使用 shell=True 来利用这一点。

```python import subprocess

subprocess.Popen("your command &", shell=True) ```

解释:

  • & : 将命令发送到后台。

示例:

import subprocess

# 以后台模式打开 Firefox
process = subprocess.Popen("firefox www.google.com", shell=True, start_new_session=True)

# 打印进程 ID (可选)
print("进程 ID:", process.pid) 

注意:

  • 使用 shell=True 可能会带来安全风险,尤其是在处理用户输入的命令时。
  • 如果不需要与子进程进行交互,可以省略 process 变量。

希望这些信息能帮到你!

标签:python,linux,subprocess,background-process
From: 78800866

相关文章

  • 【学习笔记】Matlab和python双语言的学习(TOPSIS法)
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、TOPSIS法1.模型原理2.基本步骤(1)原始矩阵正向化(2)正向矩阵标准化(3)计算得分并归一化二、代码实现----Matlab1.主程序2.正向化处理函数3.极小型正向化函数4.中间型正向化函数5.区间型正向化......
  • 基于Python flask 的豆瓣电影top250数据评分可视化
    跟着CSDN上学习一下爬虫和简单的可视化分析,最后完成了一个简单的小项目。1.项目简介        基于Pythonflask的豆瓣电影评分可视化。通过采用Python编程语言,使用flask框架搭建影视系统,并使用相关技术实现对豆瓣网站的爬取、数据存储和可视化分析。2、成果展示:......
  • 获取 Python Decimal 的精确十进制字符串表示形式?
    如果我有一个PythonDecimal,我怎样才能可靠地获得数字的精确十进制字符串(即不是科学记数法)表示而不带尾随零?例如,如果我有:>>>d=Decimal('1e-14')我会像:>>>get_decimal_string(d)'0.00000000000001'但是:Decimal类没有任何to_......
  • Linux工作原理10网络应用程序和服务
    10网络应用程序和服务本章探讨基本的网络应用--在用户空间运行的客户端和服务器,它们位于应用层。由于这一层位于堆栈的顶层,离最终用户很近,因此你可能会发现这部分内容比第9章的内容更容易理解。事实上,你每天都在与网络浏览器等网络客户端应用程序交互。为了完成工作,网络客户......
  • python datetime timedelta 对于没有小数部分的时间返回 0.0
    我正在使用datetime.timedelta来获取python中进程的持续时间。defget_time_difference(start_time,end_time):time_in_seconds=(end_time-start_time)returnstr(datetime.timedelta(seconds=time_in_seconds))[:-3]文档指出“所有参数都是可选的......
  • 如何运行从我正在编写的另一个 Python 脚本获取命令行参数的 Python 脚本?
    我有一个python3脚本,如下所示:...defmain():parser=argparse.ArgumentParser(description='Performnormalisationchecksonpass2files')parser.add_argument('-p','--parser',action='store',help='parse......
  • Linux捣鼓记录:debian配置语言环境
    1.安装区域设置sudoaptupdatesudoaptinstalllocales2.配置语言环境sudodpkg-reconfigurelocales按空格多选,选中en_US.UTF-8和zh_CN.UTF-8这里多选择了英文,可以避免有些软件比如steamcmd报警告:WARNING:setlocale('en_US.UTF-8')failed,usinglocale:'C'.......
  • Python 抓取 urllib2 HTTP 错误
    我正在尝试抓取一个网站,但我的代码仅在我打开该网站然后刷新它时才有效。我尝试了多种方法,但不断出现以下两个错误:第一个:ValueError:“HTTPError:HTTP错误416:请求的范围无法满足”urlslist=open("list_urls.txt").read()urlslist=urlslist.split("\n")forurlslistinurl......
  • 【Python】利用 face_recognition 库进行人脸检测识别【附完整示例】
    1.背景条件1.1安装所需库首先安装face_recognition和Pillow这两个库。您可以使用以下命令来安装它们:pipinstallface_recognitionPillow-ihttps://pypi.tuna.tsinghua.edu.cn/simple1.2拷贝代码安装完成后,您就可以在本地运行以下提供的代码了。importfac......
  • 太强了,Python+Excel真的是神仙组合!
    本书是由流行开源Python库xlwings的创始人:费利克斯·朱姆斯坦(FelixZumstein)所撰写。他详细阐述了如何将Python与Excel结合使用,让任务自动化,从而实现效率飞跃。为了帮助初学者克服对Python的恐惧,作者特意将教程内容设计成从简单到复杂的顺序进行介绍。这本书PDF共282页,分为4个......