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

在我自己的shell程序中忽略stdin的后台进程

在Shell程序中忽略stdin的后台进程是指在后台运行的进程不会读取标准输入流(stdin)的内容。这在某些情况下是有用的,例如当我们希望在前台进行其他任务时,后台进程不会阻塞等待用户输入。

实现在自己的Shell程序中忽略stdin的后台进程可以通过使用输入重定向和后台运行符来实现。具体步骤如下:

  1. 在Shell程序中,使用输入重定向将stdin重定向到一个文件或者/dev/null设备。这样就可以将stdin中的内容重定向到指定文件,或者直接将其丢弃。
  2. 在Shell程序中,使用输入重定向将stdin重定向到一个文件或者/dev/null设备。这样就可以将stdin中的内容重定向到指定文件,或者直接将其丢弃。
  3. 在执行命令时,在命令的末尾添加后台运行符"&"。这样可以将命令放到后台运行而不会阻塞Shell程序的执行。
  4. 在执行命令时,在命令的末尾添加后台运行符"&"。这样可以将命令放到后台运行而不会阻塞Shell程序的执行。

通过以上两个步骤,就可以在自己的Shell程序中忽略stdin的后台进程。需要注意的是,这种方式只适用于那些不需要从stdin读取输入的后台进程。

下面是对这个流程中涉及的一些名词的解释和相关推荐的腾讯云产品:

  1. 输入重定向(Input Redirection):将命令的输入来源从默认的stdin重定向到其他地方,如文件或设备。
    • 分类:输入重定向属于Shell脚本的输入输出重定向功能。
    • 优势:可以方便地改变命令的输入来源,使得命令能够从文件、设备或者其他命令的输出中获取输入。
    • 应用场景:在Shell脚本中,可以使用输入重定向来将文件的内容作为命令的输入,或者将命令的输出写入文件。
    • 腾讯云产品推荐:无
  • /dev/null:Linux系统中的一个特殊设备文件,可以将其视为一个黑洞,所有写入该设备的数据都会被丢弃,读取该设备则会立即返回EOF。
    • 概念:/dev/null是Linux内核中的一个虚拟设备文件,它可以用于丢弃数据。
    • 分类:设备文件
    • 优势:可以方便地丢弃不需要的数据,尤其在需要忽略stdin的后台进程中,将stdin重定向到/dev/null可以实现该目的。
    • 应用场景:在Shell脚本中,/dev/null可以用于丢弃不需要的命令输出或输入。
    • 腾讯云产品推荐:无
  • 后台运行符(Background Operator):"&"符号,用于将命令放到后台运行而不会阻塞Shell程序的执行。
    • 概念:后台运行符用于将命令放到后台运行,即在命令末尾添加"&"符号。
    • 分类:Shell脚本语法
    • 优势:可以使命令在后台运行,不会阻塞Shell程序的继续执行,可以在后台同时执行多个任务。
    • 应用场景:当需要执行长时间任务或者同时执行多个任务时,可以使用后台运行符将命令放到后台运行。
    • 腾讯云产品推荐:无

希望以上答案能满足您的需求。

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

相关·内容

自己桌面端应用运行了小程序

作为程序员必须要(xia)精(zhe)进(teng),就单纯有一天突然奇想,能否做到像微信一样桌面应用也跑上自己程序呢?...SDK 前还需要在 FinClip 后台上架小程序上架了官方示例小程序代码包,也尝试了直接把微信小程序代码包上传到 IDE ,发现也能兼容。...在后台获取对应 SDK KEY 与 SDK SECRET。...以下是桌面端实际运行小程序结果。图片如果做一定适配优化,小程序展示尺寸还可以适配打开窗口大小,效果也不错。...图片个人认为一些企业做OA模块化开发还挺适合在桌面端用小程序,毕竟小程序能够实现动态化更新,不必硬要通过迭代更新实现。好了以上就是瞎折腾全过程,欢迎各位大佬拍砖。

1.4K30
  • windows程序嵌入Lua脚本引擎--编写自己Lua库

    windows程序嵌入Lua脚本引擎--建立一个简易“云命令”执行系统》一文提到了使用Luaffi库,可以让我们像写C代码一样写lua程序。...程序嵌入Lua脚本引擎--使用VS IDE编译Luajit脚本引擎》中介绍Lua工程。        ...5 修改《windows程序嵌入Lua脚本引擎--使用VS IDE编译Luajit脚本引擎》中介绍Buildvm工程生成后事件。...image.png         B fl库中一个获取系统中所有进程函数         为了让我们这个例子尽可能复杂,不准备使用快照方法去获取进程信息。...而是使用Windows未公开函数NtQuerySystemInformation。之前《使用APIHOOK实现进程隐藏》中介绍过该方法。

    2.2K30

    Linux查看及终止正在运行后台程序方法

    (kill),shell 从当前shell环境已知列表删除任务进程标识;也就是说,jobs命令显示是当前shell环境中所起后台正在运行或者被挂起任务信息; 四、fg 将后台命令调至前台继续运行...概念:当前任务 如果后台任务号有2个,[1],[2];如果当第一个后台任务顺利执行完毕,第二个后台任务还在执行时,当前任务便会自动变成后台任务号码“[2]” 后台任务。...当用户输入“fg”、“bg”和“stop”等命令时,如果不加任何引号,则所变动均是当前任务 进程终止 后台进程终止: 方法一: 通过jobs命令查看job号(假设为num),然后执行kill %num...进程挂起 后台进程挂起: solaris通过stop命令执行,通过jobs命令查看job号(假设为num),然后执行stop %num; redhat,不存在stop命令,可通过执行命令kill...num即可; 前台进程挂起: ctrl+Z; 以上这篇Linux查看及终止正在运行后台程序方法就是小编分享给大家全部内容了,希望能给大家一个参考,也希望大家多多支持。

    13.5K00

    Python守护进程daemon实现

    1 守护进程 1.1 守护进程 守护进程是系统中生存期较长一种进程,常常在系统引导装入时启动,系统关闭时终止,没有控制终端,在后台运行。...而对于init进程,它是一个由内核引导装入时启动用户层次命令,属于用户级守护进程,主要负责启动各运行层次特定系统服务。这些服务通常是它们自己拥有的守护进程帮助下实现。...它可以Linux系统启动时从启动脚本/etc/rc.d启动,可以由作业规划进程crond启动,还可以由用户终端(通常是shell)执行。此外,守护进程必须与其运行前环境隔离开来。...7、忽略SIGCHLD信号    这一步并非必须,只对需要创建子进程守护进程才有必要,很多服务器守护进程设计成通过派生子进程来处理客户端请求,如果父进程不对SIGCHLD信号进行处理的话,子进程终止后变成僵尸进程...null','/tmp/daemon.log','/tmp/daemon.err') # 调用之后,你程序已经成为了一个守护进程,可以执行自己程序入口了 time.sleep(10)

    7.5K30

    《Linux命令行与shell脚本编程大全》第十六章 控制脚本

    但是会处理收到SIGHUP(1)和SIGINT(2)。 shell会将这些信号传给shell脚本程序来处理,而shell脚本默认行为是忽略这些信号。...1.中断进程 Ctrl+c会生成SIGINT信号。会发送给当前shell运行所有进程。 2.暂停进程 进程运行时暂停进程,无需终止它。让程序继续保留在内存,并能从上次停止位置继续运行。...16.1.3 捕获信号 也可以不忽略信号,信号出现时捕获它们并执行相应命令。 trap命令允许你来指定脚本要监看并从shell拦截linux信号。...ps命令可以看到很多进程都不是运行在终端显示器上,这些就是后台进程。 在后台模式下,进程运行不会和终端会话上电STDIN STDOUT STDER关联。...列出等待作业 atq命令可以查看系统中有哪些作业等待。 atq是自己,好像不会默认安装。 ? 作业列表列出了作业号,系统运行该作业日期以及所在作业队列。上面的都在a队列。

    3K61

    Linux下几种运行后台任务方法

    今天就给大家介绍 linux 几种后台任务执行方法避免上述问题。1....问题引入程序员最不能容忍使用终端时候往往因为网络,关闭屏幕,执行 CT 今天就给大家介绍 linux 几种后台任务执行方法避免上述问题。 1....其背后主要原因在于上述相关操作,shell 默认会发送中断信号给该终端 session 关联进程,从而导致进程跟随终端退出,为了弄清这个问题我们首先要了解两种中断信号: 1)sigint:signal...2 & 符号 这是一种把 & 放在执行命令最后,使启动程序忽略 sigint 信号, 此时执行 ctrl+c 关闭就不会关闭此进程,但是当屏幕关闭,断网仍然会造成进程退出。...缺省情况下所有输出都被重定向到一个名为 nohup.out 文件

    2.9K60

    【DB笔试面试700】Oracle,如何彻底杀掉会话?V$SESSIONSTATUS为KILLED如何找到后台OS进程

    ♣ 题目部分 Oracle,如何彻底杀掉会话?V$SESSIONSTATUS为KILLED情况下如何找到相关后台OS进程?...所有所持有的资源,所以,执行完ALTER SYSTEM KILL SESSION后,会话还是一直存在(V$SESSION视图中存在,且后边OS进程也存在)。...另外,由于变为KILLED状态会话PADDR列都变成了另外一个值,因此,通过平常连接方式就没有办法关联到后台进程Oracle 11g下提供了CREATOR_ADDR列,该列可以关联到后台进程,...对于Oracle 10g可以通过特殊SQL找到后台进程号。...KILL_SESSION FROM GV$SESSION A WHERE A.USERNAME = 'SYS' AND A.STATUS = 'KILLED'; & 说明: 有关杀会话更多内容可以参考

    2.3K10

    linux系统编程之进程(五):终端、作业控制与守护进程

    一、终端概念 UNIX系统,用户通过终端登录系统后得到一个Shell进程,这个终端成为Shell进程控制终端(Controlling Terminal),控制终端是保存在PCB信息,而我们知道...fork会复制PCB信息,因此由Shell进程启动其它进程控制终端也是这个终端。...在上面的例子,proc3、proc4、proc5被Shell放到同一个前台进程组,其中有一个进程是该进程Leader,Shell调用wait等待它们运行结束。...一旦作业运行结束,Shell就把自己提到前台,如果原来前台进程组还存在(如果这个子进程还没终止),则它自动变成后台进程,被init进程接管。...实际上一般进程(前后台关闭终端窗口后,会收到 SIGHUP 信号导致中断,可以使用 nohup command  args > /dev/null 2>&1 & 来忽略 hangup 信号,或者直接使用

    2.6K90

    C#.NET应用程序开发创建一个基于Topshelf应用程序守护进程(服务)

    文章目录 C#/.NET基于Topshelf创建Windows服务系列文章目录: C#/.NET基于Topshelf创建Windows服务程序及服务安装和卸载 (1) C#/.NET应用程序开发创建一个基于...本文主要演示C#/.NET应用程序开发创建一个基于Topshelf应用程序守护进程(服务)。...这里为了演示方便,没有重新创建服务类,实际项目中,你也可以根据自己情况创建不同服务类。..."也可以找到客户端进程,但却看不到客户端程序UI界面。...好了,今天C#/.NET应用程序开发创建一个基于Topshelf应用程序守护进程(服务)分享就到这里。 是Rector,希望本文对C#/.NET开发你有所帮助。

    2.1K20

    如何让程序真正地在后台运行?

    来源:公众号【编程珠玑】 作者:守望先生 ID:shouwangxiansheng 如何实现一个守护进程?如何让程序后台运行?这是后台开发面试常问一道题,那么守护进程到底是什么?又该如何实现?...守护进程 守护进程通常生存期长,很多是系统启动时启动,系统退出时才关闭。它们特点通常没有控制终端,后台运行。 有人可能会会心一笑,后台运行程序知道呀。还有两种方式呢 $ ..../hello & 使用nohup命令总可以了吧? 挺好,nohup会忽略SIGHUP命令,并有了&加持,即便终端关了,也能继续执行。...下面要介绍守护进程一一种完全脱离终端,有着自己会话。 如果你在你Linux系统执行下面的命令: $ ps -elf 就会发现一些进程tty列是?...为了保留printf输出,daemonize函数,并没有关闭所有的文件描述符,0,1,2可以参考《如何理解 Linux shell“2>&1”?》

    2.5K20

    Docker核心技术之容器详解

    一、容器简介 容器(Container):容器是一种轻量级、可移植、并将应用程序进行打包技术,使应用程序可以几乎任何地方以相同方式运行 Docker将镜像文件运行起来后,产生对象就是容器。...也就是说,容器操作,如同在一个虚拟机(操作系统)操作一样。...进程接收到该信号会立即终止,不进行清理和暂存工作。该信号不能被忽略、处理和阻塞,它向系统管理员提供了可以杀死任何进程方法。 SIGTERM信号:程序终结信号,可以由kill命令产生。...与SIGKILL不同是,SIGTERM信号可以被阻塞和终止,以便程序退出前可以保存工作或清理临时文件等。 docker stop 会先发出SIGTERM信号给进程,告诉进程即将会被关闭。...                不绑定STDIN 容器执行新命令 – docker exec 作用:     容器运行一个命令 命令格式:     docker exec [OPTIONS] CONTAINER

    2K20

    Docker入门

    随后,Docker 文件系统内部利用这个镜像创建了一个新容器。该容器拥有自己网络、IP地址,以及一个用来和宿主机通信桥接网络接口。...最后,我们告诉 Docker 新容器内要运行什么命令,我们容器运用 /bin/bash 创建了一个 Bash Shell。 使用容器 现在,我们已经切换到了新容器 ?...如果退出 shell 进程,容器也会随之停止运行 创建守护式容器 除了这些交互式运行容器,我们也可以创建长期运行容器。守护式容器没有交互式会话,非常适合运行应用程序和服务。...可以容器内部运行进程有两种类型:后台任务和交互式任务。后台任务容器内部运行并且没有交互需求,而交互式任务保持在前台运行。...对于需要在容器内部打开 shell 任务,交互式任务还是很实用,下面是一个后台任务例子 ? 这里标志 -d 表示是一个后台进程

    91720

    swoole_proces实现多进程

    shell命令,会分别创建一个子进程来消费。...$redirect_stdin_stdout,重定向子进程标准输入和输出。启用此选项后,进程内输出内容将不是打印屏幕,而是写入到主进程管道(例如用echo打印内容也写入管道)。...读取键盘输入将变为从管道读取数据。默认为阻塞读取。 $create_pipe,是否创建管道,启用 $redirect_stdin_stdout后,此选项将忽略用户参数,强制为true。...如果子进程内没有进程间通信,可以设置为 false 注意: swoole_process最新1.8.0版本已经禁止Web环境中使用了,所以也只能支持命令行。...进程常驻后台 如果跑服务需要一直常驻后台,可以 $process->start();前面加上: swoole_process::daemon(); 服务会在后台运行。

    71430

    概述Linux TTYPTS区别

    (这里将它们忽略),一端teletype上敲键盘时,相应数据会发送到另一端teletype,具体功能是干什么也不太了解。...tty设备上写数据时,tty就会将数据输出到output设备上 当在shell执行不同命令时,前端进程不断变化,而这种变化会由shell负责更新到tty设备 从上面可以看出,进程和tty打交道很简单...,只要保证后台进程不要读写tty就可以了,即写后台程序时,要将stdin/stdout/stderr重定向到其它地方(当然deamon程序还需要做很多其它处理)。...API修改tty这个参数,然后由tty通过信号SIGWINCH通知前端程序(比如shell或者vim),前端程序收到信号后,再去读tty这个参数,然后就知道如何调整自己输出排版了。...echo就是用来控制该功能配置项,如果是-echo的话表示disable echo功能。 -tostop 如果你shell运行程序时候,后面添加了&,比如.

    2.2K31

    java检测tomcat宕机_Tomcat意外宕机分析

    后来通过google后了解到: shell非交互模式下对后台进程处理SIGINT信号时设置是IGNORE。...交互模式与非交互模式对作业控制(job control)默认方式不同: I)交互模式下,因为作业控制需要,shell不会对后台进程处理SIGINT信号设置为忽略。...因此,交互模式下后台进程会设置一个自己进程组ID。...不开启作业控制的话,脚本里后台进程可以通过设置忽略SIGINT信号来避免父进程对组成员传播,因为对它来说这个信号已经没有意义。...非交互模式下,shell对java进程设置了SIGINT,SIGQUIT信号设置了忽略,但并没有对SIGHUP信号设为忽略,回头看上面说,直接关闭ssh终端窗口时,sshd向下游进程发送SIGHUP

    1.4K10

    nohup command > out.file 2>&1 & 命令详解

    并且,当modem和系统断开连接时,就会给系统发送hangup信号来通知其关闭该终端打开所有进程。 而nohup命令用途就是让该终端提交命令忽略该hangup信号,从而能够系统中继续执行。...当然,nohup命令会解除终端和其打开进程之间关联,进程会丢掉STDOUT和STDERR链接。标准输出和标准错误缺省会导致输出被重定向到nohup.out文件。...所以使用nohup命令时,我们通常会在命令结尾加上"&"来将命令同时放入后台运行。当然我们也可以用">out.file 2>&1"来将输出重定向到out.file文件。...FD (file descriptor文件描述符) shell 程式,最常使用 FD (file descriptor文件描述符) 有三个, 分别是: 0 是一个文件描述符,表示标准输入(stdin...程序员行话,尤其是Unix行话,/dev/null 被称为位桶(bit bucket)或者黑洞(black hole)。空设备通常被用于丢弃不需要输出流,或作为用于输入流空文件。

    3.1K41

    Docker入门

    随后,Docker 文件系统内部利用这个镜像创建了一个新容器。该容器拥有自己网络、IP地址,以及一个用来和宿主机通信桥接网络接口。...最后,我们告诉 Docker 新容器内要运行什么命令,我们容器运用 /bin/bash 创建了一个 Bash Shell。 使用容器 现在,我们已经切换到了新容器 ?...如果退出 shell 进程,容器也会随之停止运行 创建守护式容器 除了这些交互式运行容器,我们也可以创建长期运行容器。守护式容器没有交互式会话,非常适合运行应用程序和服务。...可以容器内部运行进程有两种类型:后台任务和交互式任务。后台任务容器内部运行并且没有交互需求,而交互式任务保持在前台运行。...对于需要在容器内部打开 shell 任务,交互式任务还是很实用,下面是一个后台任务例子 ? 这里标志 -d 表示是一个后台进程

    87430

    Docker入门

    随后,Docker 文件系统内部利用这个镜像创建了一个新容器。该容器拥有自己网络、IP地址,以及一个用来和宿主机通信桥接网络接口。...最后,我们告诉 Docker 新容器内要运行什么命令,我们容器运用 /bin/bash 创建了一个 Bash Shell。 使用容器 现在,我们已经切换到了新容器 ?...如果退出 shell 进程,容器也会随之停止运行 创建守护式容器 除了这些交互式运行容器,我们也可以创建长期运行容器。守护式容器没有交互式会话,非常适合运行应用程序和服务。...可以容器内部运行进程有两种类型:后台任务和交互式任务。后台任务容器内部运行并且没有交互需求,而交互式任务保持在前台运行。...对于需要在容器内部打开 shell 任务,交互式任务还是很实用,下面是一个后台任务例子 ? 这里标志 -d 表示是一个后台进程

    82230
    领券