首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Java 6中使用继承的stdin/stdout/stderr启动进程

在Java 6中,使用继承的stdin/stdout/stderr启动进程可以通过以下步骤实现:

  1. 首先,需要导入相关的库:import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader;
  2. 然后,创建一个类,继承自Thread,并重写run()方法:class ProcessThread extends Thread { private Process process; public ProcessThread(Process process) { this.process = process; } public void run() { try { BufferedReader input = new BufferedReader(new InputStreamReader(process.getInputStream())); String line; while ((line = input.readLine()) != null) { System.out.println(line); } input.close(); } catch (IOException e) { e.printStackTrace(); } } }
  3. 在主函数中,创建一个ProcessBuilder对象,并设置需要执行的命令:ProcessBuilder processBuilder = new ProcessBuilder("your_command", "your_arguments");
  4. 使用start()方法启动进程,并创建一个ProcessThread对象,将进程传递给它:try { Process process = processBuilder.start(); ProcessThread processThread = new ProcessThread(process); processThread.start(); } catch (IOException e) { e.printStackTrace(); }

这样,就可以在Java 6中使用继承的stdin/stdout/stderr启动进程了。需要注意的是,在实际使用中,需要根据具体情况进行错误处理和异常捕获。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

python笔记65 - Python3 subprocess执行命令行获取返回结果

前言 subprocess 模块允许我们启动一个新进程,并连接到它们输入/输出/错误管道,从而获取返回值。 Popen 是 subprocess核心,子进程创建和管理都靠它处理。...stdin, stdout and stderr: These specify the executed programs' standard input, standard output...当创建标准流管道对象时使用,默认-1。...stdin, stdout, stderr: 分别表示程序标准输入、输出、错误句柄 preexec_fn: 只 Unix 平台下有效,用于指定一个可执行对象(callable object),它将在子进程运行之前被调用...cwd: 用于设置子进程的当前目录。 env: 用于指定子进程环境变量。 如果 env = None,子进程环境变量将从父进程继承

8.2K20

Python守护进程daemon实现

1 守护进程 1.1 守护进程 守护进程是系统中生存期较长一种进程,常常在系统引导装入时启动系统关闭时终止,没有控制终端,在后台运行。...而对于init进程,它是一个由内核引导装入时启动用户层次命令,属于用户级守护进程,主要负责启动各运行层次特定系统服务。这些服务通常是它们自己拥有的守护进程帮助下实现。...它可以Linux系统启动时从启动脚本/etc/rc.d中启动,可以由作业规划进程crond启动,还可以由用户终端(通常是shell)执行。此外,守护进程必须与其运行前环境隔离开来。...3.启动方式特殊,它可以系统启动时从启动脚本/etc/rc.d中启动,可以由inetd守护进程启动,可以由crond启动,还可以由用户终端(通常是shell)执行。...============' #调用daemon_init函数前是可以使用print到标准输出,调用之后就要用把提示信息通过stdout发送到日志系统中了 daemon_init('/dev/

7.1K30

python 守护进程(daemon)

/usr/bin/env python # -*- coding:utf-8 -*- import sys, os '''将当前进程fork为一个守护进程    注意:如果你守护进程是由inetd启动...()     si = open(stdin, 'r')     so = open(stdout, 'a+')     se = open(stderr, 'a+')     os.dup2(si.fileno... | grep daemon.py查看后台运行继承/tmp/daemon_error.log会记录错误运行日志 # /tmp/daemon_stdout.log会记录标准输出日志。...2.修改子进程工作目录 子进程创建时候会继承进程工作目录,如果执行程序是U盘里面,就会导致U盘不能卸载。...3.创建新会话 使用setsid后,子进程就会成为新会话进程,子进程会成为新进程组长进程,子进程没有控制终端。

1K30

python中执行DOS命令3种方法小

windows平台下,默认shell由COMSPEC环境变量来指定。 参数stdin, stdout, stderr分别表示程序标准输入、输出、错误句柄。...参数Close_sfs:windows平台下,如果close_fds被设置为True,则新创建进程将不会继承进程输入、输出、错误管 道。...我们不能将close_fds设置为True同时重定向子进程标准输入、输出与错误(stdin, stdout, stderr)。 如果参数shell设为true,程序将通过shell来执行。...subprocess.PIPE 创建Popen对象时,subprocess.PIPE可以初始化stdin, stdoutstderr参数,表示与子进程通信标准流。...注意:如果希望通过进程stdin向其发送数据,创建Popen对象时候,参数stdin必须被设置为PIPE。

2K20

Python实现守护进程

概念 守护进程(Daemon)也称为精灵进程是一种生存期较长一种进程。它们独立于控制终端并且周期性执行某种任务或等待处理某些发生事件。他们常常在系统引导装入时启动系统关闭时终止。...禁止进程重新打开控制终端 二次fork,创建子-孙进程,使sid不等pid 关闭打开文件描述符 通常就关闭STDINSTDOUTSTDERR 改变当前工作目录 防止占用别的路径...working dirfd,导致一些block不能unmount 重设umask 防止后续子进程继承非默认umask造成奇怪行为 处理SIGCHLD信号 非必需 日志 输出重定向后...='/dev/null', stdout='/dev/null', stderr='/dev/null'): self.stdin = stdin self.stdout...Supervisor 管理进程,具体可看 Supervisor安装与配置 参考 tzuryby/daemon.py python2实现通用python daemon类 12.14 Unix系统上面启动守护进程

1.2K20

python中daemon守护进程实现方法

守护进程是生存期长一种进程。它们独立于控制终端并且周期性执行某种任务或等待处理某些发生事件。他们常常在系统引导装入时启动系统关闭时终止。...这些环境通常是守护进程从执行它进程(特别是shell)中继承下来。...3.启动方式特殊,它可以系统启动时从启动脚本/etc/rc.d中启动,可以由inetd守护进程启动,可以由crond启动,还可以由用户终端(通常是shell)执行。...使用方便 #             需要改造为守护进程程序只需要重写基类run函数就可以了 #date: 2015-10-29 #usage: 启动: python daemon_class.py...', umask=022, verbose=1):         self.stdin = stdin         self.stdout = stdout         self.stderr

74320

python subprocess模块

terminate() 杀掉所启动进程 communicate() 等待任务结束 stdin 标准输入 stdout 标准输出 stderr 标准错误 pid The process ID...0 无缓冲,1 行缓冲,其他 缓冲区大小,负值 系统缓冲 stdin, stdout, stderr:分别表示程序标准输入、输出、错误句柄 preexec_fn:只Unix平台下有效...,用于指定一个可执行对象(callable object),它将在子进程运行之前被调用 close_sfs:windows平台下,如果close_fds被设置为True,则新创建进程将不会继承进程输入...所以不能将close_fds设置为True同时重定向子进程标准输入、输出与错误(stdin, stdout, stderr)。...shell:同上 cwd:用于设置子进程的当前目录 env:用于指定子进程环境变量。如果env = None,子进程环境变量将从父进程继承

98520

正确使用python调用shell姿势

具体点:popen 支持 stdout popen2 支持stdin, stdout popen3 支持stdin, stdout, stderr popen4 支持stdin, stdout and...subprocess模块来执行系统命令,subprocess 模块允许我们启动一个新进程,并连接到它们输入/输出/错误管道,从而获取返回值。...stdin, stdout, stderr:分别表示程序标准输入、输出、错误句柄 preexecfn:只 Unix 平台下有效,用于指定一个可执行对象(callable object),它将在子进程运行之前被调用...cwd:用于设置子进程的当前目录。env:用于指定子进程环境变量。如果 env = None,子进程环境变量将从父进程继承。...")print out 至此,我们已经介绍完了如何使用python和shell交互方式,通过这种方式我们可以很轻松开发一个自动化作业,比如系统参数初始化,使用yum安装各种软件,各种业务项目的部署,启动

7.4K20

python模块之subprocess类与常量

常量 subprocess.DEVNULL:可传递给stdin, stdout, stderr参数特殊值,意味着将使用特殊文件os.devnull重定向输入输出 subprocess.PIPE:可传递给...stdin, stdout, stderr参数特殊值,意味着使用管道重定向输入输出 subprocess.STDOUT:可传递给stderr参数特殊值,表示重定向标准错误到标准输出 Popen 一个新进程中执行子程序...子进程文件句柄继承自父进程。除此之外,stderr还可以是STDOUT,表示标准错误输出重定向到标准输出。 preexec_fn:限于POSIX系统,设置一个可调用对象,先于子进程程序执行。...但如果指定了encoding/errors或者text为True,将使用指定encoding和errors以文本模式打开stdin/stdout/stderr。...如果传递给Popenstdin参数不是PIPE,此属性值为None stdout:与Popen.stdin相近,但stream对象是可读 stderr:与Popen.stdout相近 pid:子进程进程

2.4K10

Python用subprocessPopen来调用系统命令

參数stdin, stdout, stderr分别表示程序标准输入、输出、错误句柄。他们能够是PIPE,文件描写叙述符或文件对象,也能够设置为None,表示从父进程继承。...參数Close_sfs:windows平台下,假设close_fds被设置为True,则新创建进程将不会继承进程输入、输出、错误管 道。...subprocess.PIPE 创建Popen对象时,subprocess.PIPE能够初始化stdin, stdoutstderr參数。表示与子进程通信标准流。...注意:假设希望通过进程stdin向其发送数据,创建Popen对象时候,參数stdin必须被设置为PIPE。...异常对象中,包 括进程returncode信息。 subprocess模块内容就这么多。Python手冊中,还介绍了怎样使用 subprocess来替换一些老模块,老函数样例。

1.7K20

python 标准类库-并行执行之subprocess-子进程管理

也可以通过使用stderr=subprocess.STDOUT结果中捕获标准错误。...PIPE表示应该创建通往子进程管道。DEVNULL表示应该使用指定文件os.devnull。默认参数None则表示无进行重定向,子进程文件句柄从父进程继承。...此外,stderr还可以是STDOUT,表明子进程错误数据应该被放进相同文件句柄stdout 如果universal_newlines为True,文件对象stdinstdoutstderr将按...PIPE表示应该创建通往子进程管道。DEVNULL表示应该使用指定文件os.devnull。默认参数None则表示无进行重定向,子进程文件句柄从父进程继承。...Windows平台,当stdin/stdout/stderr为None时,为True,否则为False。Windows平台,如果close_fds为True,那么子进程不会继承任何句柄。

3.8K20

python之系统命令

0 无缓冲,1 行缓冲,其他 缓冲区大小,负值 系统缓冲 stdin, stdout, stderr:分别表示程序标准输入、输出、错误句柄 preexec_fn:只Unix平台下有效,用于指定一个可执行对象...(callable object),它将在子进程运行之前被调用 close_sfs:windows平台下,如果close_fds被设置为True,则新创建进程将不会继承进程输入、输出、错误管道...所以不能将close_fds设置为True同时重定向子进程标准输入、输出与错误(stdin, stdout, stderr)。...shell:同上 cwd:用于设置子进程的当前目录 env:用于指定子进程环境变量。如果env = None,子进程环境变量将从父进程继承。...universal_newlines:不同系统换行符不同,True -> 同意使用 \n startupinfo与createionflags只windows下有效 将被传递给底层CreateProcess

1.1K40

使用python执行shell脚本 并动态传参 及subprocess使用详解

这个模块可以非常方便启动一个子进程,并且控制其输入和输出 Class Popen(args,bufsize = 0,executable=None, stdin =None,stdout =None...负bufsize意味着使用系统默认值,通常意味着完全缓冲。bufsize默认值是0(无缓冲)。 stdinstdoutstderr分别指定执行程序标准输入,标准输出和标准错误文件句柄。...另外,stderr 可以是STDOUT,它表示应用程序stderr数据应该被捕获到与stdout相同文件句柄中。...注意:此功能仅在Python是使用通用换行支持(默认)构建时才可用。此外,文件对象stdoutstdinstderrnewlines属性不会被communications()方法更新。...返回一个元组(stdout,stderr) 但是读取数据缓存在内存中,所以如果数据量很大或者无限,就不要使用这种方法 Popen.pid 返回子进程pid Popen.returncode 读取进程状态码

5.2K30

pythonsubprocess模块

需要说明是,该方法python3.x中才有。 call()方法启动进程,其标准输入输出会绑定到父进程输入和输出。调用程序无法获取命令输出结果。...如果env=None,则默认从父进程继承环境变量 universal_newlines:不同系统换行符不同,当该参数设定为true时,则表示使用\n作为换行符 示例1,/root下创建一个suprocesstest...,None未结束 使用Popen调用系统命令式,建议使用communicate与stdin进行交互并获取输出(stdout),这样能保证子进程正常退出而避免出现僵尸进程。...,它将在子进程运行之前被调用 close_sfs:Windows平台下,如果close_sfs被设置为True,则新创建进程将不会继承进程输入、输出、错误管道 所以不能将close_fds设置为...如果env=None,子进程环境变量将从父进程继承 universal_newlines:不同系统换行符不同,True->同意使用\n startupinfo与createionflags只Windows

3K20

pyinstaller打包成无控制台程序时运行出错(与popen冲突解决方法)

stdinstdoutstderr分别表示子程序标准输入、标准输出和标准错误。 可选值有PIPE或者一个有效文件描述符(其实是个正整数)或者一个文件对象,还有None。...如果是PIPE,则表示需要创建一个新管道,如果是 None,不会做任何重定向工作,子进程文件描述符会继承进程。...另外,stderr值还可以是STDOUT,表示子进程标准错误也输出到标准输出。 如果把preexec_fn设置为一个可调用对象(比如函数),就会在子进程被执行前被调用。...(仅限unix/linux) 如果把close_fds设置成True,unix/linux下会在开子进程前把除了0、1、2以外文件描述符都先关闭。 Windows下也不会继承其他文件描述符。...注意,即使你只env里定义了某一个环境变量值,也会阻止子程序得到其他进程环境变量(也就是说,如果env里只有1项,那么子进程环境变量就 只有1个了)。

3.5K30

Python调用linux系统命令--使

如果args是一个元组或列表形式,序列第一个元素就是命令可执行文件。也可以使用executable 显式地指定可执行文件路径。 stdin, stdout, stderr :用于和外部进行通信。...可以使用 subprcess.PIPE 进行初始化。当stdin, stdout, stderr 被初始化后,就可以和外部进行复杂通信了。...注意:如果需要使用communication() 方法与子进程通信,那么创建子进程时,stdin, stdout, stderr, 都需要用subprocess.PIPE 初始化。...env : 字典, 用于指定子进程运行环境,默认是None, 说明子进程继承进程环境变量。...然后,子进程pb 标准输入stdin 用pa.stdout 进行初始化,实现了管道功能,pa 进程输出编程了pb进程输入,最后输出结果。

5K20

python中subprocess

程序通常执行序列或字符串第一项,但可以通过使用明确参数进行设置。 UNIX上,shell = False(默认):在这种情况下,Popen类使用os.execvp()来执行程序进程。...如果参数是一个序列,第一项指定命令字符串,其他将被视为附加shell命令参数。 Windows:Popen类通过使用CreateProcess()执行这个子进程来对字符串操作。...一个负bufsize意味着使用这个系统默认情况下,这通常意味着完全缓冲。默认值为bufsize是0(无缓冲)。 stdinstdoutstderr分别指定执行程序标准输入,标准输出和标准错误。...PIPE创建一个新子管道。None,没有重定向;子管道将会继承父管道文件句柄。此外,标准错误可以用STDOUT来定义,表明应用程序应该从STDOUT捕获到相同文件句柄标准错误数据。...=STDOUT, close_fds=True) (child_stdin, child_stdout_and_stderr) = (p.stdin, p.stdout) Unix系统中,

1.6K30
领券