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

nohup基本使用

在Linux终端命令中经常要使用到在关闭终端界面的情况下需要后台挂起执行进程,也就是关闭终端后台任务进程还是会常驻,下面就简单介绍下 nohup 命令1. nohupnohup 英文全称 no hang...up(不挂起),默认情况下(非重定向时),会输出一个名叫 nohup.out 文件到当前目录下,如果当前目录 nohup.out 文件不可写,输出重定向到$HOME/nohup.out 文件,经常与...终端退出后命令仍旧执行举例:执行 jar 包java -jar xdr630.jar &在终端如果看到以下输出说明运行成功:appending output to nohup.out此时默认程序运行输出信息放到当前文件夹...(包括标准输出和错误输出)都合并并记录到 xdr.log 文件nohup java -jar xdr630.jar > xdr.log 2>&1 &xdr.log:重定向目标文件,Java程序标准输出...这意味着如果程序有任何错误消息,它们会被记录在这个xdr.log文件里,而不是显示在终端上程序正常输出被丢弃,错误输出则被记录到xdr.log文件参考:【Linux】nohup执行jar包

26810

Docker核心技术之容器详解

命令参数(OPTIONS):     -a, --attach        将当前shell STDOUT/STDERR 连接到容器上                                               ...-i, --interactive        将当前shell STDIN连接到容器上 命令演示: docker run 与 docker create + docker start docker...注意:     容器日志记录是容器主进程输出STDOUT\STDERR 容器重命名 – docker rename 作用:     修改容器名称 命令格式:     docker rename...CONTAINER NEW_NAME 命令参数(OPTIONS):         无 六、容器运行时操作 容器连接 – docker attach 作用:     将当前终端STDIN、STDOUT...、STDERR绑定到正在运行容器进程上实现连接 命令格式:     docker attach [OPTIONS] CONTAINER 命令参数(OPTIONS):         --no-stdin

1.8K20
您找到你想要的搜索结果了吗?
是的
没有找到

Linux控制台重定向方法

如果设备具有联网能力,我们可以通过telnet或者ssh登录到设备上,进行远程调试。 这时候就面临一个问题:如何把设备打印信息显示出来?...注:在某个控制终端执行命令(启动程序),默认绑定当前终端,所以正常情况下telnet或者ssh到设备后,执行ls等命令,输出都是在当前终端。 ?...如下图所示,应用程序需要集成一个Server,用来接收Client发送来重定向指令。 ? 相关过程说明如下: 在telnet或者ssh对应终端上,执行可执行程序Client。...,基本不影响原系统性能 STDIN/STDOUT/STDERR均可重定向,方便实时查看、交互,并且可恢复到原终端 缺点: 依赖Linux系统,其他系统(比如一些RTOS)不一定适用 需要集成一个client...、server本地通信框架 只能重定向某个进程输入/输出,其他进程、内核打印无法重定向(直接执行cat /proc/kmsg命令可以远程实时查看内核打印)

4.6K21

Python守护进程daemon实现

守护进程脱离于终端是为了避免进程在执行过程信息在任何终端上显示并且进程也不会被任何终端所产生终端信息所打断。...用户层守护进程缺少控制终端可能是守护进程调用了setsid结果。大多数用户层守护进程都是进程组长进程以及会话进程,而且是这些进程组和会话唯一进程。 守护进程启动方式有其特殊之处。...至此,这个子进程作为新进程组长,完全脱离了其他进程控制,并且没有控制终端。 4、将当前工作目录更改为根目录(或某一特定目录位置)。...这是为了保证守护进程当前工作目录在一个挂载文件系统,该文件系统不能被卸载。 5、关闭不再需要文件描述符。根据具体情况来定。...8、用日志系统记录出错信息    因为守护进程没有控制终端,当进程出现错误时无法写入到标准输出上,可以通过调用syslog将出错信息写入到指定文件

7.1K30

Docker命令行入门大全:这18条,你不得不知

inspect — 查看关于容器信息 logs — 打印日志 stop — 优雅停止正在运行容器 kill — 立即停止容器主要进程 rm — 删除已经停止容器 ?...容器&镜像 docker version — 列出关于Docker客户端以及服务器版本信息 docker login — 登录到Docker镜像仓库 docker system prune — 删除所有未使用容器...docker container create -a STDIN my_image -a是—attach缩写,指将容器连接到STDIN,STDOUTSTDERR。...,它会分配一个伪终端,将终端与容器STDIN和STDOUT连接起来。...在命令末尾句号(.)是告诉Docker根据当前工作目录Dockerfile构建镜像。 当你构建好镜像之后,你想要推送它到远程仓库以便它可以共享并且在有需要时候被拉取。

1.1K20

python subprocess模块

terminate() 杀掉所启动进程 communicate() 等待任务结束 stdin 标准输入 stdout 标准输出 stderr 标准错误 pid The process ID...0 无缓冲,1 行缓冲,其他 缓冲区大小,负值 系统缓冲 stdin, stdout, stderr:分别表示程序标准输入、输出、错误句柄 preexec_fn:只在Unix平台下有效...所以不能将close_fds设置为True同时重定向子进程标准输入、输出与错误(stdin, stdout, stderr)。...shell:同上 cwd:用于设置子进程当前目录 env:用于指定子进程环境变量。如果env = None,子进程环境变量将从父进程中继承。...CreateProcess()函数,用于设置子进程一些属性,如:主窗口外观,进程优先级等等 终端输入命令分为两种: 输入即可得到输出:如 ifocnfig 输入进行某环境,依赖某环境再输入

98520

全志D1-H芯片 Tina 如何查看通过 procd init 脚本启动应用输出到 stdoutstderr 打印信息?

原因 一般情况下,当用户在终端执行命令来运行某个应用程序时,stdin/stdout/stderr 就确定下来是在当前终端,因此应用程序打印信息自然能从当前终端显示出来。...守护进程是随系统自启,它们有可能在用户登录终端之前就已经开始运行了,也无法得知用户是从哪个终端登录,因此也就无法将打印信息输出到用户所在终端。...解决方法 一般来说,要获取守护进程打印,需要通过 syslog 之类记录系统整体日志方法。procd init 脚本也提供了方法将应用程序打印重定向到 syslog 。...1”和“procd_set_param stderr 1”两个参数,可将其输出到 stdout/stderr 内容重定向到 syslog: #!...1 # 将其 stdout 内容重定向到 syslog procd_set_param stderr 1 # 将其 stderr 内容重定向到 syslog procd_close_instance

15610

关于 devnull 差点直播吃鞋一个小问题

shell 脚本中经常看到 2>&1 是什么意思 拆解来看,2> 表示重定向 stderr ,&1 表示 stdout,连起来含义就是将标准错误输出 stderr 改写为标准输出 stdout 相同输出方式...,在父进程可以读取并显示在终端中了。...与 stdin 如果想让 docker 进程 stdin 变为键盘终端,可以用 -it 选项启动 docker run。...运行镜像以后,重新查看进程打开文件描述符列表,可以看到 stdin、stdoutstderr 都已经发生了变化,如下所示。...小结 这篇文章从一个小例子介绍了进程相关三个基础文件描述符:stdin、stdoutstderr,以及这三个文件描述符如何进行重定向。顺带介绍了一下管道相关概念,好了,鞋吃饱了,睡觉。

53320

理解OpenShift(6):集中式日志处理

(3)使用 Docker 日志驱动(logging driver) Docker 日志驱动会读取容器进程 stdout(标准输出) 和 stderr(错误输出),然后将内容写入容器所在宿主机上文件...容器主进程(PID 为1进程 stdoutstderr 会被输出到宿主机上 JSON 文件。...(4)使用专门日志容器 Docker 日志驱动这种实现方式有一些限制: 只支持日志转发,不会做日志解析和处理 只支持容器内应用发到 stdoutstderr 日志,不支持其它日志,比如日志文件内日志...它会以边车(sidecar)形式读取应用容器日志产生,然后做处理和转发,比如转发到 stdoutstderr。 ? 另外,某些这种场景还有另外一种更简单处理方式。...可以在统一浏览器界面(Kibana)上查询所有容器应用 要求将容器应用日志都输出到标准输出和标准错误输出 需要改变传统录到环境查看日志习惯,改为在Kibana界面上查看日志 需要有Kibana

1.3K20

Docker学习笔记

既然是强大容器,那么就什么都可以放进去并运行它,显然Docker应用是进程隔离。在日常运维和部署时,一个应用使用资源是有限,而Docker很好进行资源整合。...然后按提示进行安装 docker pull nginx:1.18.0 安装成功之后 您可以通过Docker images来查看Docker镜像程序 ?...-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项; -d: 后台运行容器,并返回容器ID; -i: 以交互模式运行容器,通常与 -t 同时使用; -P:...并使用Docker ps -a来查看Docker应用启动效果 ? 这里exited表示距离当前退出时间差。...也同样也可以使用docker start mynginx131来重新启动或者docker restart mynginx131来启动我们应用。 ? 您也可以登录到Docker容器

41710

自动化运维平台Spug介绍

默认用户名: admin 密码: spug.dev 可以在 系统管理/系统设置/关于 查看当前运行 Spug 版本,可以在 更新日志 查看当前最新版本。.../spug_api/tools/start-ws.sh autostart = true stdout_logfile = /data/spug/spug_api/logs/ws.log redirect_stderr.../start-scheduler.sh autostart = true stdout_logfile = /data/spug/spug_api/logs/scheduler.log redirect_stderr...3>文件在线上传下载:可以很方便在执行命令过程中上传或者下载需要文件 4>在线终端:在线终端方便平台远程调试,跟本地执行一样 5>应用部署:可以快速部署任意开发语言应用,...例如PHP、Java、Nodejs、Go等 6>监控报警:支持常见网站监控,也可以针对主机进程、端口进行监控,如果端口、进程监控满足不了需要,可以自己写脚本进行监控,报警支持钉钉、微信

1.7K20

Bash中文件描述符详细介绍

默认标准文件描述符 每个进程启动时默认都会有三个标准文件描述符: stdin 0 号描述符, 代表输入设备, 进程从它读入数据; stdout 1 号描述符, 进程往其中写入数据; stderr 2...号描述符, 进程会往其中写入错误信息; 这三个描述符默认是对应同一个 tty 设备, 这样我们便可以在终端输入数据和获取进程输出....默认文件描述符也是可以被替换, 例如我们可以替换掉 stdout 到一个文件, 这样命令输出就不是打印到终端, 而是被输出到文件: ?...其中 exec 是一个 bash 内置命令, 不同于在终端执行命令时会 fork 一个子进程, 通过 exec 执行命令会直接修改当前 shell 进程, 可以通过它执行命令来修改当前 shell...我们通过下面的例子来验证上面的文件描述符交换是否生效: 首先把默认 stderr 重定向到文件 /tmp/stderr , 这样在终端中就不会看到错误输出了; 当交换完 stderrstdout

1.2K43

python 守护进程(daemon)

/usr/bin/env python # -*- coding:utf-8 -*- import sys, os '''将当前进程fork为一个守护进程    注意:如果你守护进程是由inetd启动...))         sys.exit(1)         # 进程已经是守护进程了,重定向标准文件描述符       for f in sys.stdout, sys.stderr: f.flush...('Daemon started with pid %d\n' % os.getpid())     sys.stdout.write('Daemon stdout output\n')     sys.stderr.write...1、fork子进程,父进程退出 通常,我们执行服务端程序时候都会通过终端连接到服务器,成功连接后会加载shell环境,终端盒shell都是进程,shell进程终端进程进程,通过ps命令可以很容易查看到...3.创建新会话 使用setsid后,子进程就会成为新会话进程,子进程会成为新进程组长进程,子进程没有控制终端

1K30

Python 守护进程

由于一个控制终端     与一个会话相关联,而且这个新会话还没有获得一个控制终端,我们进程没     有控制终端,这对于守护程序来说是一件好事。 3....调用‘chdir("/")’确认我们进程不保持任何目录于使用状态。不做这个会导     致系统管理员不能卸装(umount)一个文件系统,因为它是我们的当前工作目录。    ...[类似的,我们可以改变当前目录至对于守护程序运行重要文件所在目录] 5. 调用‘umask(0)’以便我们拥有对于我们写任何东西完全控制。...: stderr = stdout         si = file(stdin, 'r')         so = file(stdout, 'a+')        ...子进程就变成了一个无终端,无会话完全自我掌控后台进程了。

91130

Docker实现原理学习笔记

,对比一下UTS隔离情况 } // 输入输出 cmd.Stdin = os.Stdin cmd.Stderr = os.Stderr cmd.Stdout = os.Stdout...,对比一下PID隔离情况 } // 输入输出 cmd.Stdin = os.Stdin cmd.Stderr = os.Stderr cmd.Stdout = os.Stdout...添加描述 系统启动时,初始化进程会将rootfs挂载到/目录,之后再挂载其他文件系统到其子目录,这期间所有的mount系统调用都会被记录到初始化mount table,宿友进程都有一张独立mount...添加描述 我们在宿主机可以看到很多进程,但是我们现在启动一个docker看看 添加描述 当前Docker 容器成功将容器内进程与宿主机器进程隔离,此时我们回到宿主机,使用ps -ef |...50000,那么当前控制组全部进程 CPU 占用率不能超过 50%。

37520

Web 服务进程托管

你会发现,它运行起来以后,会占用你当前一个终端会话,进入「长运行模式」,就像这样: [2020-05-23 22:54:57 +0800] [13077] [INFO] Starting gunicorn...这是因为你在终端运行所有进程,父进程都是当前终端会话,并且绑定了标准输入输出。...命令可以将进程变成不挂起,(默认情况下)它会把标准输出和标准错误输入重定向到当前目录nohup.txt文件,并且将进程进程改成 1,也就是 1 号进程,这样终端退出以后,此进程将继续持续运行...所以更强大、专门进程管理工具就应运而生。supervisor是用 Python 写一款进程管理器,它支持进程异常重启、日志存储,并且提供了一个命令行程序来查看、管理当前进程。...; 标准输出日志地址,会将所有print到终端输出输出到指定文件 ;stdout_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation

20340

Python实现守护进程

概念 守护进程(Daemon)也称为精灵进程是一种生存期较长一种进程。它们独立于控制终端并且周期性执行某种任务或等待处理某些发生事件。他们常常在系统引导装入时启动,在系统关闭时终止。...禁止进程重新打开控制终端 二次fork,创建子-孙进程,使sid不等pid 关闭打开文件描述符 通常就关闭STDIN、STDOUTSTDERR 改变当前工作目录 防止占用别的路径...,需要有机制放映内部情况 关于两次fork 第二个fork不是必须,只是为了防止进程打开控制终端。...打开一个控制终端条件是该进程必须是session leader。...第一次fork,setsid之后,子进程成为session leader,进程可以打开终端;第二次fork产生进程,不再是session leader,进程则无法打开终端

1.2K20

pythondaemon守护进程实现方法

守护进程是生存期长一种进程。它们独立于控制终端并且周期性执行某种任务或等待处理某些发生事件。他们常常在系统引导装入时启动,在系统关闭时终止。...守护进程特性 1.在后台运行 2.与其运行前环境隔离开来。这些环境包括未关闭文件描述符、控制终端、会话和进程组、工作目录以及文件创建掩码等。...3.启动方式特殊,它可以在系统启动时从启动脚本/etc/rc.d启动,可以由inetd守护进程启动,可以由crond启动,还可以由用户终端(通常是shell)执行。...守护进程编程规则 1.在后台运行,调用fork ,然后使父进程exit 2.脱离控制终端,登录会话和进程组,调用setsid()使进程成为会话组长 3.禁止进程重新打开控制终端 4.关闭打开文件描述符...    verbose 表示将启动运行过程异常错误信息打印到终端,便于调试,建议非调试模式下关闭, 默认为1, 表示开启     save_path 表示守护进程pid文件绝对路径

74820

Console 模块解读及简单实现

Console 模块提供了简单调试功能,这在一些测试调试中有时也是使用最方便、用最多,它和浏览器 console 类似,但是在浏览器它是同步,在 Node.js ,就有个疑问了是同步还是异步...,参考:# Logger 模块实现 实现步骤 初始化 Logger 对象 对参数进行检验,当前对象是否为 Logger 实例,是否为一个可写流实例 为 Logger 对象定义 stdoutstderr...= Logger; Logger 模块基本使用 日志输出至终端 无特殊说明,日志都是默认打印到控制台,在一些代码调试也是用最多。...当你向一个交互终端会话写时这可能不是个问题,但当生产日志到进程输出流时要特别留心。...实现 console.log 在控制台打印,利用 process.stdout 将输入流数据输出到输出流(即输出到终端),一个简单例子输出 hello world process.stdout.write

1.1K10
领券