首页
学习
活动
专区
工具
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脚本引擎--建立一个简易的“云命令”执行的系统》一文中,我提到了使用Lua的ffi库,可以让我们像写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.8K00

    《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

    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.7K30

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

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

    3.1K60

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

    ♣ 题目部分 在Oracle中,如何彻底杀掉会话?V$SESSION的STATUS为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.4K10

    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.7K90

    在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.6K20

    Docker核心技术之容器详解

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

    2.1K20

    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(); 服务会在后台运行。

    72030

    Docker入门

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

    91820

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

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

    1.4K10

    【Linux网络编程】:守护进程,前台进程,后台进程

    这篇文章是网络编程的第一篇文件,是对网络UDP,TCP,序列化反序列化的一些总结,应用层协议。 1.守护进程 1.1前台进程??后台进程??守护进程??...如果我们在Xshell上启动一个服务器程序,正常情况下是前台进程,加上&会变成后台进程。但是当我们关闭Xshell终端的时候,前台进程会关闭,后台进程会受影响。而且服务器是要长期运行,不能关闭的。...前台进程和后台进程本质还是属于同一个session,断开连接的时候,前台进程会退出,后台进程会受影响,可能是报错。 守护进程是脱离当前会话Session,形成了一个独立的Session。...#include pid_t setsid(void); 手动转化为守护进程 调用成功以后,就形成一个新的会话,如果调用进程原本关联了一个控制终端(如Shell终端),调用 setsid...SIG_IGN); SIG_ING:忽略信号。

    9910

    守护进程

    bash提到前台 bg 3再把3号进程启动起来 session(进程会话) 在Linux中,session(会话)通常指的是与用户交互的一个环境,它是系统中与某个用户交互的一系列活动的集合。...,那些任务仍然在 bash也退了,然后就托孤了 受到了用户登录和退出的影响 守护进程化---不想受到任何用户登陆和注销的影响 如何做到(setsid)(创建新会话) 怎么保证自己不是组长 守护进程本质(...孤儿进程) 守护进程忽略的几个信号和含义 在 C/C++ 中,守护进程通常会忽略一些信号,确保其在后台继续运行,而不被用户的操作或其他系统事件干扰。...忽略这些信号有助于确保进程不被意外终止,可以持续运行。 如何在 C/C++ 中忽略信号? 在 C/C++ 中,您可以使用 signal() 函数来捕获或忽略信号。...它是编写需要长期运行、无交互的后台任务程序时常用的函数。

    7210

    Docker入门

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

    87630

    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.2K41
    领券