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

如何在没有pid的unix机器上无限期关闭后台运行的进程?

在没有PID的UNIX机器上无限期关闭后台运行的进程,可以通过以下步骤实现:

基础概念

在UNIX系统中,进程ID(PID)是唯一标识一个进程的数字。通常,我们使用kill命令结合PID来终止进程。但在没有PID的情况下,我们需要通过其他方式来识别和终止进程。

相关优势

  • 灵活性:即使没有PID,我们仍然可以通过进程名或其他属性来终止进程。
  • 适用性:适用于无法获取PID的场景,如系统重启后PID发生变化。

类型

  • 通过进程名终止进程:使用pkillkillall命令。
  • 通过其他属性终止进程:如用户、组、启动时间等。

应用场景

  • 系统维护时需要终止某些长时间运行的进程。
  • 进程启动时没有记录PID,但需要终止该进程。

解决方法

方法一:使用pkill

pkill命令可以根据进程名来终止进程。

代码语言:txt
复制
pkill -9 进程名

例如,要终止名为myprocess的进程:

代码语言:txt
复制
pkill -9 myprocess

方法二:使用killall

killall命令也可以根据进程名来终止进程。

代码语言:txt
复制
killall -9 进程名

例如,要终止名为myprocess的进程:

代码语言:txt
复制
killall -9 myprocess

方法三:通过其他属性终止进程

如果需要根据其他属性(如用户、组)来终止进程,可以使用pgrep结合kill命令。

例如,要终止所有属于myuser用户的进程:

代码语言:txt
复制
kill -9 $(pgrep -u myuser)

可能遇到的问题及解决方法

问题:进程名不唯一

如果系统中存在多个同名进程,pkillkillall会终止所有匹配的进程。如果只想终止特定的进程,可以使用更精确的匹配条件。

例如,通过进程启动时间来终止进程:

代码语言:txt
复制
kill -9 $(ps -eo pid,comm,start --sort=start_time | awk '/myprocess/ {print $1}')

问题:权限不足

如果当前用户没有权限终止某个进程,可以使用sudo提升权限。

例如:

代码语言:txt
复制
sudo pkill -9 myprocess

参考链接

通过以上方法,可以在没有PID的情况下无限期关闭后台运行的进程。

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

相关·内容

Java“魔法”-jstack命令解析

Java进程Id查询也可以使用: ps -ef | grep java 需说明一下:jps仅查找当前用户Java进程,而不是当前系统中所有进程。...常用命令: # 查看 java 进程,显示 pid,完整包名以及 main 函数参数 jps -ml # 查看Java进程对应给JVM参数 jps -v # 根据 name 查找 java 进程 jps...线程出现停顿时候通过jstack来查看各个线程调用堆栈,就可以知道没有响应线程到底在后台做什么事情,或者等待什么资源。...jstack命令主要用来查看Java线程调用堆栈,可以用来分析线程问题(死锁)。...线程状态 线程在运行过程中,会在几种状态中进行切换,我们可以用jstack命令查看线程堆栈信息时,可能会看到线程几种状态,了解这些线程状态,方便后续对于具体问题排查和解决。

71820

Linux内核编程--进程组和守护进程

、终端产生信号等发生任何不期望交互,也可以避免在后台运行守护进程非预期地输出到终端。...守护进程特点: 无需控制终端 运行后台 一般随操作系统启动和关闭 守护进程运行后台,但是和后台进程有一定区别: (1)守护进程和终端不挂钩,不向终端输出内容(信息),但后台进程是能向终端输出内容...(使用printf语句,后台进程可以将内容输出到屏幕)。...(2)守护进程关闭终端(比如Xshe11)时候不会受到影响,而后台进程将在终端关闭后自动退出。 守护进程启动方式: 1.在系统启动阶段,由系统初始化脚本启动。...该函数返回时,父进程实际一次调用fork产生进程。然后这个父进程被终止,留下新进程继续运行

3K20
  • Linux ps 命令用法详解

    在 Linux 中,程序运行实例称为进程。有时,在 Linux 机器上工作时,您可能需要找出当前正在运行进程。...在本文中,我们将讨论如何在Linux中使用该 ps 命令列出当前正在运行进程并显示有关这些进程信息。...在没有任何选项情况下使用它是最简单形式, ps 将打印四列信息,用于在当前 shell 中运行最少两个进程, shell 本身以及在命令时在 shell 中运行进程。...PID - 进程 ID 。在大多数情况下,当运行 ps 命令时,用户正在寻找最重要信息是过程 PID 。了解 PID 可以消除故障过程。 TTY - 进程控制终端名称。... u 代表,其提供了有关过程详细信息用户为导向格式。 该 x 选项将 ps 在没有控制终端情况下列出进程。这些主要是在启动时启动并在后台运行进程

    4.2K20

    运维人必收藏最全Linux服务器程序规范

    除了网络通信外,服务器程序还必须考虑许多其他细节问题,零碎,但基本都是模板式。 Linux服务器程序一般以后台形式运行后台程序又称守护进程。它没有控制终端,因而也不会意外接受用户输入。...大部分后台进程都在/var/log下有自己日志目录。 Linux服务器程序一般以某个专门非root身份运行。...Linux服务器程序通常在启动时生成一个PID文件并存入/var/run目录中,以记录该后台进程PID。...用户进程时通过调用syslog函数生成系统日志。 该函数将日志输出到一个unix本地域socket类型(AF_UNIX)文件/dev/log中,rsyslogd则监听该文件以获取用户进程输出。...所以可以利用早先打开文件描述符来访问调用chroot之后不能直接访问文件(目录). 06 服务器程序后台化 最后,如何在代码中让一个进程以守护进程防止运行,守护进程编写遵循一定步骤,下面一个实例

    1.2K00

    史上最全Linux服务器程序规范

    ———引 Linux服务器程序一般以后台形式运行后台程序又称守护进程。它没有控制终端,因而也不会意外接受用户输入。守护进程进程一般是init进程pid=1)。...Linux服务器程序一般以某个专门非root身份运行。mysqld, httpd, syslogd等后台进程,并分别有自己运行账户mysql, apache, syslog。...绝大多数服务器程序都有配置文件并存放在/etc下 Linux服务器程序通常在启动时生成一个PID文件并存入/var/run目录中,以记录该后台进程PID。...用户进程时通过调用syslog函数生成系统日志。 该函数将日志输出到一个unix本地域socket类型(AF_UNIX)文件/dev/log中,rsyslogd则监听该文件以获取用户进程输出。...所以可以利用早先打开文件描述符来访问调用chroot之后不能直接访问文件(目录). 06 服务器程序后台化 最后,如何在代码中让一个进程以守护进程防止运行,守护进程编写遵循一定步骤,下面一个实例

    1.9K60

    【小家运维】达到Linux第三阶段常用命令笔记记录—Part Ⅲ

    当然还包括我们Java Web服务,它线程需要一直运行着~~~ 为何关闭窗口/断开链接,正在运行程序会死掉?...Linux/Unix中有一个分厂重要概念:会话 会话期(session):一个或多个进程集合,有唯一一个会话期首进程(session leader)。会话期ID为首进程ID。...在应用Unix/Linux时,我们一般想让某个程序在后台运行,于是我们将常会用 & 在程序结尾来让程序自动运行。...虽然现在基本不怎么需要用到这些命令,但学会了也是很实用 & 最经常被用到:这个用在一个命令最后,可以把这个命令放到后台执行 ctrl + z:可以将一个正在前台执行命令放到后台,并且暂停 jobs...如果后台中有多个命令,可以用bg %jobnumber将选中命令调出,%jobnumber是通过jobs命令查到后台正在执行命令序号(不是pid) bg 将进程搬到后台运行(Background

    1.8K20

    网站功能——使用 Supervisor 部署 Django 应用程序

    关于 Supervisor 初识 Supervisor Supervisor是一个用于进程管理开源工具,通常用于在Unix和类Unix系统监控和控制进程运行。...它提供了一个简单而强大方式来管理后台进程,例如Web服务器、任务队列、应用程序等。...它被广泛应用于Web服务器(Nginx、Apache)、应用程序框架(Django、Flask)、队列处理(Celery)等场景,以确保关键进程稳定运行和自动恢复。...总而言之,Supervisor是一个可靠而灵活进程管理工具,它简化了在Unix系统管理和监控后台进程任务,提供了更好稳定性和可管理性。...这个时候如果没有问题可以看到后台有个 gunicorn 进程运行,也就是 django 在运行。 更新配置 涉及配置变动,需要更新。

    56320

    万字长文揭秘37手游自研任务调度平台

    后台复制配置修改进程启动参数,提交即调度。 为了更好地应对业务发展需求,37 手游开始逐步云。...二、任务部署问题 单个任务只能与单台机器 IP 绑定,无法做到 IDC 云(双云)、双云切换(需要支持机房一键切换) 原任务部署为 IDC 双机房,过程,任务需要独立配置一条云机器...每个进程都使用了一个 goroutine 等待进程退出,避免子进程挂掉又没有回收资源,产生大量僵尸进程,耗尽系统进程号。 而进程启动后,会向中控后台回传 PID 号,持久化数据库中。...对于开发来说,很多时候出现问题,他也不需要 ssh 上机器了,只需在后台即可检查自己服务有没有异常。 进程信息怎么拿?...选点,如果用户交给调度器,调度器会优先选择节点池负载最低机器执行任务; 记录进程选点信息,上次执行时间、PID 等信息; 如果上次任务没跑完,这次就不会触发了(防雪崩),否则永远跑不完,机器迟早得宕机

    63031

    Go 如何实现热重启

    进程单线程,实现热重启会比较简单些: fork 一下就可以创建出子进程, 子进程可以继承父进程资源,已经打开文件描述符,包括父进程 listenfd、connfd, 父进程,可以选择关闭 listenfd...比如我开启了 reuseport,父进程直接处理完已建立连接 connfd 请求之后关闭,子进程里 reuseport.Listen 直接创建新 listenfd。 也可以!...父进程平滑退出逻辑,关闭 listenfd,等待 connfd 请求处理结束,关闭 connfd,一切妥当后,父进程退出,子进程挑大梁! 5....= nil {     panic(err)    }    // 这里pause, 运行命令lsof -P -p $pid,检查下有没有listenfd传过来,除了0,1,2,应该有看到3    /...如果有服务混布情况存在,需要考虑下使用 unix domain socket 文件名,避免因为重名所引起问题,可以考虑通过”进程名.pid“来作为 unix domain socket 名字,

    2.5K63

    linux 后台运行进程:& , nohup

    为了使这些进程能够在后台运行,也就是说不在终端屏幕运行,有几种选择方法可供使用。...在后台运行作业时要当心:需要用户交互命令不要放在后台执行,因为这样你机器就会在那里傻等。不过,作业在后台运行一样会将结果输出到屏幕,干扰你工作。...(ps -ef | grep 进程号 或者 kill -9 进程号) nohup 使用&命令后,作业被提交到后台运行,当前控制台没有被占用,但是一但把当前控制台关掉(退出帐户时),作业就会停止运行。...,不以终端机来区分 关闭当前后台运行程序 kill 通过jobs命令查看job号(假设为num),然后执行kill %num 通过ps命令查看job进程号(PID,假设为pid),然后执行kill...因为他们程序特殊,比如httpd –k start运行这个以后,他不属于sshd这个进程组 而是单独进程组,所以就算关闭了ssh,和他也没有任何关系!

    4.5K40

    Python创建daemon

    参考《Linux/Unix 系统编程手册》     变成daemon,一个程序需要完成以下步骤:     1、执行一个fork(),父进程退出,子进程继续执行。...(daemon成为了init进程进程)       --假设daemon是从命令行启动,父进程终止会被shell发现,之后shell会显示出另一个shell提示符并让子进程后台运行;     -...创建文件和目录时拥有必要权限)     5、修改进程当前工作目录(通常改为根目录 /,保证根目录文件系统不会被卸载即可,:cron会将自身放在/var/spool/cron 目录下)     6、...关闭daemon从父进程继承而来所有打开着文件描述符(由于daemon失去了控制终端,对0,1,2描述符完全可以关闭;无法卸载长时间运行daemon打开文件所在文件系统----文件描述符是一种有限资源...)     7、关闭0,1,2文件描述符后,daemon通常会打开/dev/null,并让所有描述符都指向该设备     --这样确保了当daemon调用在这些文件描述符执行IO库函数时不会出乎意料失败

    76410

    Supervisor使用详解

    :uid:gid ;[inet_http_server] ;HTTP服务器,提供web管理界面 ;port=127.0.0.1:9001 ;Web管理后台运行IP和端口...-c /etc/supervisord.conf command中指定进程已经起来,但supervisor还不断重启 问题描述:command中启动方式为后台启动,导致识别不到pid,然后不断重启...,这里使用是elasticsearch,command指定是$path/bin/elasticsearch -d 解决办法:supervisor无法检测后台启动进程pid,而supervisor...本身就是后台启动守护进程,因此不用担心这个 启动了多个supervisord服务,导致无法正常关闭服务 问题描述:在运行supervisord -c /etc/supervisord.conf之前...,直接运行过supervisord -c /etc/supervisord.d/xx.conf导致有些进程被多个superviord管理,无法正常关闭进程

    55720

    linux 后台运行方法总结

    实现方式 实现进程免受终端SIGHUP信号影响原理主要有两种: 使进程屏蔽SIGHUP信号,nohup 使进程脱离当前终端,这样当前终端SIGHUP信号自然不会引起进程中断,disown,setsid...当前台已经执行任务时,使用Ctrl z将当前进程挂起到后台暂停运行,使用bg %1命令使后台挂起命令继续运行,再使用disown -h %1使进程忽略SIGHUP信号。...另,使用 disown %1 也可达到相同效果,不过当前任务会从任务列表移除,但仍可以通过ps查看进程 Tips: 在我们日常工作中,我们可以用 Ctrl z 来将当前进程挂起到后台暂停运行,执行一些别的操作...,然后再用 fg 来将挂起进程重新放回前台(也可用 bg 来将挂起进程放在后台)继续运行。...这样我们就可以在一个终端内灵活切换运行多个任务,这一点在调试代码时尤为有用。因为将代码编辑器挂起到后台再重新放回时,光标定位仍然停留在上次挂起时位置,避免了重新定位麻烦。

    3.7K20

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

    默认情况下(没有重定向),每个进程标准输入、标准输出和标准错误输出都指向控制终端,进程从标准输入读也就是读用户键盘输入,进程往标准输出或标准错误输出写也就是输出到显示器。...(虚拟终端,直接外设输命令) 二、作业控制 事实,Shell分前后台来控制不是进程而是作业(Job)或者进程组(Process Group)。...一旦作业运行结束,Shell就把自己提到前台,如果原来前台进程组还存在(如果这个子进程还没终止),则它自动变成后台进程,被init进程接管。...三、守护进程 守护进程是在后台运行不受终端控制进程,通常情况下守护进程在系统启动时自动运行,用户关闭终端窗口或注销也不会影响守护进程运行,只能kill掉。...实际一般进程(前后台) 在关闭终端窗口后,会收到 SIGHUP 信号导致中断,可以使用 nohup command  args > /dev/null 2>&1 & 来忽略 hangup 信号,或者直接使用

    2.6K90

    Linux系统--Linux进程与作业管

    ,以实现对进程管理: 显示当前系统可用信号: kill -l man 7 signal 常用信号: 1) SIGHUP: 无须关闭进程而让其重读配置文件; 2) SIGINT: 中止正在运行进程;相当于...终止“名称“之下所有进程 killall [signal] program 6.Linux作业控制: 前台作业:通过终端启动,且启动后一直占据终端; 后台作业:可以通过终端启动,但启动后即转入后台运行...(释放终端); 如何让作业运行后台?...(1) 运行作业 Ctrl+z (2) 尚未启动作业 # COMMAND & 此类作业虽然被送往后台运行,但其依然与终端相关;如果希望送往后台后,剥离与终端关系: # nohup COMMAND...]:终止指定作业; 7.进程优先级调整: 进程优先级调整,是调整静态优先级:100-139 进程默认启动时nice值为0,优先级为120 :我们运行top命令,来查看其优先级: ?

    1.4K30

    使用 chkconfig 和 systemctl 命令启用或禁用 Linux 服务方法

    在 Linux 中,无论何时当你安装任何带有服务和守护进程包,系统默认会把这些服务初始化及 systemd 脚本添加进去,不过此时它们并没有被启用。 我们需要手动开启或者关闭那些服务。...Linux 中有三个著名且一直在被使用初始化系统。 什么是初始化系统? 在以 Linux/Unix 为基础操作系统,init (初始化简称) 是内核引导系统启动过程中第一个启动进程。...init 进程 id (pid)是 1,除非系统关机否则它将会一直在后台运行。...init 首先根据 /etc/inittab 文件决定 Linux 运行级别,然后根据运行级别在后台启动所有其他进程和应用程序。...Upstart 是一个基于事件 /sbin/init 守护进程替代品,它在系统启动过程中处理任务和服务启动,在系统运行期间监视它们,在系统关机时候关闭它们。

    2.4K52

    进程组、会话、控制终端概念,如何创建守护进程

    Linux系统有很多守护进程,大多数服务都是用守护进程实现。比如:像我们tftp,samba,nfs等相关服务。 UNIX守护进程一般都命名为*d形式,httpd,telnetd等等。...生命周期: 守护进程会长时间运行,常常在系统启动时就开始运行,直到系统关闭时才终止。 守护进程不依赖于终端 从终端开始运行进程都会依附于这个终端,这个终端称为这些进程控制终端。...从这点看,进程组不是进程概念,而是shell才有,所以在task_struct里并没有存储进程组id之类变量。 进程生命周期到组中最后一个进程终止或其加入其他进程组(离开本进程组)为止。...对于输出(Output)来说,则是在前台和后台共享,即前台和后台打印输出都会显示在屏幕。...由于在进程运行过程中,当前目录所在文件系统(“/mnt/usb”等)是不能卸载,这对以后使用会造成诸多麻烦(系统由于某种原因要进入单用户模式)。

    1.4K20

    ubuntu supervisor管理uwsgi+nginx

    一、概述 superviosr是一个Linux/Unix系统进程监控工具,他/她upervisor是一个Python开发通用进程管理程序,可以管理和监控Linux上面的进程,能将一个普通命令行进程变为后台...不过同daemontools一样,它不能监控daemon进程(也就是后台进程) 二、安装 apt-get install -y supervisor 安装成功后,会在/etc/supervisor目录下...这是2个比较关键进程,任意一个进程死掉,都会导致网页无法访问。 修改uwsgi配置 关闭后台运行,为什么呢?.../uwsgi.ini ;启动命令 autostart = true     ; 在 supervisord 启动时候也自动启动 startsecs = 5        ; 启动 5 秒后没有异常退出...,这个参数意思是在前台运行

    1.2K20

    Linux守护进程编程实现

    比方,作业规划进程crond,打印进程lpd等。 守护进程编程本身并不复杂,复杂是各种版本号Unix实现机制不尽同样,造成不同Unix环境下守护进程编程规则并不一致。...守护进程及其特性 守护进程最重要特性是后台执行。在这一点DOS下常驻内存程序TSR与之类似。其次,守护进程必须与其执行前环境隔离开来。...总之,除开这些特殊性以外,守护进程与普通进程基本没有什么差别。因此,编写守护进程实际是把一个普通进程依照上述守护进程特性改造成为守护进程。...对于须要转储核心,写执行日志进程将工作文件夹改变到特定文件夹/tmpchdir(“/”) 6. 重设文件创建掩模 进程从创建它进程那里继承了文件创建掩模。...; int i; if(pid=fork()) exit(0);//是父进程,结束父进程 else if(pid< 0) exit(1);//fork失败,退出 //是第一子进程后台继续执行

    2.4K20

    一条502报警引发胡思乱想

    fpm错误日志、慢日志,也没有什么收获(此处很可能会忽略掉了重要信息) 蛛丝马迹 于是既然认为是fpm出了问题,就调研下fpm配置文件吧 pid = /usr/local/var/run/php-fpm.pid...0 表示 '关闭该功能'. 默认值: 0 (关闭). process_control_timeout = 0 #设置子进程接受主进程复用信号超时时间....默认值: 0. daemonize = yes #后台执行fpm,默认值为yes,如果为了调试可以改为no。在FPM中,可以使用不同设置来运行多个进程池。 这些设置可以针对每个进程池单独设置。...可用格式为: 'ip:port', 'port', '/path/to/unix/socket'. 每个进程池都需要设置。如果nginx和php在不同机器,分布式处理,就设置ip这里就可以了。...user = www group = www #启动进程用户和用户组,FPM 进程运行Unix用户, 必须要设置。用户组,如果没有设置,则默认用户组被使用。

    60750
    领券