supervisor介绍 Supervisor 是一个用 Python 写的进程管理工具,可以很方便的用来在 UNIX-like 系统(不支持 Windows)下启动、重启(自动重启程序)、关闭进程(不仅仅是...Python 进程) 安装命令 包含 安装supervisor的依赖文件、supervisor程序、加入开机自启、检查状态等操作 install_supervisor.sh脚本内容 #!...supervisord.conf 在配置文件底部,配置include [include] files=/etc/supervisor/*.conf #若你本地无/etc/supervisor目录,请自建 开始写自己需要守护的进程配置...cd /etc/supervisor vim ossfs.conf # 这里写你要守护的进程的配置文件的名称(自定义) 配置文件这样写 ; 设置进程的名称,使用 supervisorctl 来管理进程时需要使用该进程名...supervisorctl update:根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启 可以网页管理 vim /etc/supervisord.conf 修改配置文件
so谷歌了一下,写了一个脚本每30s判定一下进程是否存在,如不存在就自动拉起来。 #!
后来发现到大部分人都经常清理内存(如使用360手机卫士等软件的一键关闭进程),一旦应用被清理就必须再次打开才能收到朋友的消息。...通过试用,我发现个推的SDK能在进程关闭的情况下进行服务的实时推送。凡是使用个推的APP推送链路会共享,程序被一键杀掉后能通过用户自动打开高频应用从而使其他APP推送链路畅通。...这不仅实现了各个应用之间的互相看护,还大大减少了应用对手机电量以及流量的消耗。普通的推送技术采用的是每个应用单独一个通道,一旦进程被杀死,应用就会和服务器失去连接。...通过SDK内部进程间的通信机制,被关闭的部分可以重新打开,实现了应用相互带动的良好关系,我的应用也是通过这个方式得到了同学们又一次的关注。 具体过程相信大家看了下面的图就会明白: ? ...SDK进程间通信相互看护流程 当然,看护功能是相互的,这对我们开发者来说可以达到互利共赢的目的。新版SDK默认开启看护以及被看护功能,若需退出看护联盟,应该可以联系个推的技术支持来解决。
Linux系统是这样设计的。...大多数Linux系统,这个参数默认关闭(off)。因此,session 退出的时候,不会把SIGHUP信号发给"后台任务"。所以,一般来说,"后台任务"不会随着 session 一起退出。...四、disown 命令 通过"后台任务"启动"守护进程"并不保险,因为有的系统的huponexit参数可能是打开的(on)。 更保险的方法是使用disown命令。...$ tmux $ node server.js # 返回原来的session $ tmux detach 除了tmux detach,另一种方法是按下Ctrl + B和d ,也可以回到原来的 session...# 启动web界面 http://localhost:9615 $ pm2 web 十、Systemd 除了专用工具以外,Linux系统有自己的守护进程管理工具 Systemd 。
这篇文章主要为大家详细介绍了Linux守护进程的启动方法,本文介绍如何将一个 Web 应用,启动为守护进程,感兴趣的小伙伴们可以参考一下 "守护进程"(daemon)就是一直在后台运行的进程(daemon...变成守护进程的第一步,就是把它改成"后台任务"(background job)。 $ node server.js & 只要在命令的尾部加上符号&,启动的进程就会成为"后台任务"。...Linux系统是这样设计的。...大多数Linux系统,这个参数默认关闭(off)。因此,session 退出的时候,不会把SIGHUP信号发给"后台任务"。所以,一般来说,"后台任务"不会随着 session 一起退出。...四、disown 命令 通过"后台任务"启动"守护进程"并不保险,因为有的系统的huponexit参数可能是打开的(on)。 更保险的方法是使用disown命令。
Linux 守护进程的启动方法 “守护进程”(daemon)就是一直在后台运行的进程(daemon)。 本文介绍如何将一个 Web 应用,启动为守护进程。...Linux系统是这样设计的。...四、disown 命令 通过”后台任务”启动”守护进程”并不保险,因为有的系统的huponexit参数可能是打开的(on)。 更保险的方法是使用disown命令。...$ tmux $ node server.js # 返回原来的session $ tmux detach 除了tmux detach,另一种方法是按下Ctrl + B和d ,也可以回到原来的 session...# 启动web界面 http://localhost:9615 $ pm2 web 十、Systemd 除了专用工具以外,Linux系统有自己的守护进程管理工具 Systemd 。
/usr/sbin/rinetd > /dev/null 2>&1 & # # 进程监控脚本,当指定进程不存在时,执行重启脚本将它拉起 # 特色: # 1.本监控脚本可重复执行,它会自动做互斥...# 2.互斥不仅依据监控脚本文件名,而且包含了它的命令行参数,只有整体相同时互斥才生效 # 3.对于被监控的进程,可以只指定进程名,也可以包含命令行参数 # 4.不管是监控脚本还是被监控进程,总是只针对属于当前用户下的进程...bin目录 export PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin:$PATH # 需要指定个数的命令行参数 # 参数1:被监控的进程名...,或完整的命令行,也可以为部分命令行 restart_script="$2" # 用来重启进程的脚本,要求具有可执行权限 monitor_interval=2 # 定时检测时间间隔,单位为秒...process_match="$process_match"` fi if test $process_count -lt 1; then # 执行重启脚本,要求这个脚本能够将指定的进程拉起来
进一步的说,正是对系统调用函数进行了封装,才使诸如C语言,C++等各种编程语言具有了跨平台性,我上层同样都是调用printf函数,在linux操作系统下我就去调用linux下的系统调用函数(封装在C标准库...所以,操作系统在加载可执行程序形成进程的同时,会创建一个描述该进程的结构体,称为PCB(process control block,进程控制块),linux操作系统下称之为task_struct。...未来,所有对进程的操作和控制,都只和进程的PCB有关,和进程的可执行程序没有关系。 PCB的大致属性信息 标示符: 描述本进程的唯一标示符,用来区别其他进程。...内存指针: 包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针。 上下文数据: 进程执行时处理器的寄存器中的数据。...三、查看进程 ps axj:在Linux系统中用于查看关于进程的更多信息 其中pid就是进程对应的标识符,ppid就是进程的父进程对应的标识符 ps ajx | head -1 && ps ajx |
Linux上创建进程据说消耗很少,这个一直是Linux的特点,于是就专门测试Linux创建进程的极限,测试代码如下: //fork.c #include #include <stdlib.h...65535,但是我们还不能使用blue帐户创建65535个进程,我们在Linux还需要设置内核参数kernel.pid_max,这个参数我默认安装都是32768,所以即使使用root帐户,却不设置这个内核参数.../fork 我的虚拟机Linux内存是512M,在创建6千多个进程时,程序运行得很慢,通过vmstat命令观察,发现swap内存的置入置出很频繁,可以判断是由于内存不足,使用虚拟内存,导致频繁的IO操作...测试代码中,创建的子进程,占用的内存相当小,实际使用中,只可能比测试代码创建的进程使用更多的内存,所以相应的,同样配置的机器,能创建的可用进程应该是更少的。...总结 以上所述是小编给大家介绍的Linux创建进程达到65535的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对ZaLou.Cn网站的支持!
Linux上创建进程据说消耗很少,这个一直是Linux的特点,于是就专门测试Linux创建进程的极限,测试代码如下: //fork.c #include #include <stdlib.h...测试代码是我新建的一个blue帐户进行运行测试,为了让进程尽可能创建多的进程,首先要设置blue帐户创建进程数的硬限制 使用root帐户修改/etc/security/limits.conf文件,加入一下行...blue帐户创建进程数的硬限制和软限制都是65535,但是我们还不能使用blue帐户创建65535个进程,我们在Linux还需要设置内核参数kernel.pid_max,这个参数我默认安装都是32768.../fork 我的虚拟机Linux内存是512M,在创建6千多个进程时,程序运行得很慢,通过vmstat命令观察,发现swap内存的置入置出很频繁,可以判断是由于内存不足,使用虚拟内存,导致频繁的IO操作...测试代码中,创建的子进程,占用的内存相当小,实际使用中,只可能比测试代码创建的进程使用更多的内存,所以相应的,同样配置的机器,能创建的可用进程应该是更少的。
这时就需要一个监控程序来实现能够让服务进程自动重新启动。查阅相关资料及尝试一些方法之后,总结linux系统监控重要进程的实现方法:脚本检测和子进程替换。...使用fork函数创建一个新的进程,在进程表中创建一个新的表项,而创建者(即父进程)按原来的流程继续执行,子进程执行自己的控制流程 b....当fork启动一个子进程时,子进程就有了它自己的生命周期并将独立运行,此时可以在父进程中调用wait函数让父进程等待子进程的结束 (2) 基本的实现步骤: a....在父进程中执行wait函数等待子进程的结束,然后重新创建一个新的子进程 (3) 具体实现的代码如下: supervisor.c /** * * supervisor * * date...原来调用execv进程的代码段会被progname应用程序的代码段替换。 c2. 当kill掉子进程时,父进程wait函数会接收到子进程退出的信号,进而循环再启动子进程,此过程实时性非常高。 c3.
在window系统查看系统进程,我们一般会使用Ctrl+Shift+Esc打开系统进程监控页面,但是在Linux系统查看进程一般使用top命令或者ps命令,但是如果要查看线程怎么查看?...其实也可以使用这两个命令,所以本博客总结一下几种方法 ps命令 Linux的ps命令用于查看进程统计信息 常用参数: a:显示当前终端下的所有进程信息,包括其他用户的进程。...u:使用以用户为主的格式输出进程信息。 x:显示当前用户在所有终端下的进程。 -e:显示系统内的所有进程信息。 -l:使用长(long)格式显示进程信息。...,需要注意一下 top命令 top命令可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具,TOP命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况...如果为了查看更加直观,可以使用htop,htop是默认不安装,可以进行自行安装 参考资料 Linux命令大全(手册) linux系列之常用运维命令整理 后端程序员必备的 Linux 命令
常规篇: 首先,用ps查看进程,方法如下: $ ps -ef …… smx 1822 1 0 11:38 ?...简单吧,但有个问题,进程少了则无所谓,进程多了,就会觉得痛苦了,无论是ps -ef 还是ps -aux,每次都要在一大串进程信息里面查找到要杀的进程,看的眼都花了。...“grep -v grep”是在列出的进程中去除含有关键字“grep”的进程。 “cut -c 9-15”是截取输入行的第9个字符到第15个字符,而这正好是进程号PID。...pkill或者pgrep只要给出进程名的一部分就可以终止进程。...$killall -9 firefox 附录:各种信号及其用途 Signal Description Signal number on Linux x86[1] SIGABRT Process aborted
0x01:ps -ef只打印进程,而ps -eLf会打印所有的线程 [root@centos6 ~]# ps -ef | grep rsyslogd root 1470 1 0 2011...5个线程,所以ps -ef只有一行,而ps -eLf就有5行 ps -eLf各字段含义 UID:用户ID PID:process id 进程id PPID: parent process id 父进程id...LWP:表示这是个线程;要么是主线程(进程),要么是线程 NLWP: num of light weight process 轻量级进程数量,即线程数量 STIME: start time 启动时间...TIME: 占用的CPU总时间 TTY:该进程是在哪个终端运行的;pts/0255代表虚拟终端,一般是远程连接的终端;tty1tty7 代表本地控制台终端 CMD:进程的启动命令 0x02:top -H...其中Threads后面跟的就是线程数 ? 0x04:pstree -p ${pid} ?
前几天有位小伙伴找我,说服务器有个进程占用CPU特别高,让我给分析是不是被黑了。分析进程之前先找出进程路径是必不可少的做法,这篇文章分享下Linux查看进程路径的方法。...ps命令查看进程 ps命令用于报告当前系统的进程状态,我们先用ps命令(ps -ef)找出nginx进程的PID号。...查看进程路径 Linux在启动一个进程时,系统会在/proc下创建一个以PID命名的文件夹,在该文件夹下会有我们的进程的信息,其中包括一个名为exe的文件即记录了绝对路径,通过ll或ls –l命令即可查看...目录下是进程打开或使用的文件的符号连接。...此文部分内容参考了:Linux查看进程运行的完整路径方法
我们经常会碰到这样的问题,用ssh登录了远程的Linux服务器,运行了一些耗时较长的任务,结果却由于网络等的不稳定导致任务中途失败。...下面是对Linux下运行与控制后台进程的各种方法的介绍: 1.nohup 顾名思义,nohup的用途就是让提交的命令忽略所有的hangup信号。...使用方法:nohup COMMAND [ARG]… 2.setsid 在一个新的会话中运行命令,从而可以避开当前终端发出的HUP信号。...使用方法: 将当前正在前台运行的进程放到后台运行; 然后执行disown -h %{jobid} //这里的{jobid}是通过jobs命令中看到的进程前[]中的数字。...使用方法: screen //立即创建并进入一个会话。 screen -dmS {name} //建立一个处于断开模式下的会话,并根据我们的需要指定其会话名称。
服务器上有一个任务进程,当我们使用ps -ef | grep task查看时,只能得到一些最基本的信息,假如我们需要知道对应的文件路径、启动命令的完整路径,就无从下手了。...今天教大家一个方法来查看进程的所有信息,包括启动命令的完整路径、对应的文件完整路径等等信息:ls -l /proc/PID 例如使用ps -ef | grep webhook查看进程时,只能得到如下信息...3926 root 3u IPv4 36374 0t0 TCP bogon:ssh->bogon:53436 (ESTABLISHED) [root@bogon ~]# #获取终端上所有用户的有关进程的所有信息...#获取某服务程序的所有进程号 [root@bogon ~]# pgrep httpd 6701 6702 6703 6704 6705 6706 #杀死进程,killall通过程序名字杀死所有进程 [root.../bin/bash while true do echo "linux">/dev/null done [root@bogon ~]# ./a.sh ^Z [1]+ Stopped .
前言:在了解完冯诺依曼体系结构和操作系统之后,我们进入了Linux的下一篇章Linux进程,但在学习Linux进程之前,一定要阅读理解上一篇内容,理解“先描述,再组织”才能更好的理解进程的含义。...Linux进程学习基础 本篇主要内容: 进程的概念 通过系统调用获取进程标示符 1....而操作系统管理进程也是如此,管理的进程对应的数据 而在操作系统对进程上,依然采用的是“先描述,再组织”的方法 操作系统将可执行程序的各种数据加载,拷贝出来,再用结构体把数据存进去,由于可能同时会存在多个进程...课本上称之为PCB(process control block),Linux操作系统下的PCB是: task_struct 1.2 CPU对于进程列表的处理 在CPU对进程列表进行处理时,PCB中的数据有时不会被...:ps ajx | head -1 && ps ajx | grep 可执行程序 2.2 终止进程 在我们刚接触Linux时,通常按CTRL+c可以结束进程,现在在学习Linux进程时,还有一种方法可以杀死进程
查询指定路径下的进程: ps aux | grep 指定路径 实例: ps aux | grep /data/nccode/ncc2020.05_for_ylz/ 根据进程 id 杀掉指定进程...kill -9 指定进程号 实例: kill -9 640582 案例: 我再该路径下起了一个服务,我要干掉我起的这个服务。...一般的进程信息里都会显示进程启用的路径,ps aux 是查看进程,grep 就是在前面的基础上再筛选查找包含指定内容的进程。...然后杀掉,再查一下可以看到没了,如果之前进程卡死了,这样就解决了,重新起进程就好了。
进程是在 CPU 及内存中运行的程序代码,而每个进程可以创建一个或多个进程(父子进程)。 **查看进程方法:** 第一种: ps aux ps命令用于报告当前系统的进程状态。...ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。...a:显示当前终端下的所有进程信息,包括其他用户的进程。 u:使用以用户为主的格式输出进程信息。 x:显示当前用户在所有终端下的进程。 示例: ?...START:启动该进程的时间 TIME:该进程占用CPU时间 COMMAND:启动该进程的命令的名称 **总结:ps aux 是以简单列表的形式显示出进程信息。...到此这篇关于LINUX查看进程的4种方法(小结)的文章就介绍到这了,更多相关LINUX 查看进程内容请搜索ZaLou.Cn以前的文章或继续浏览下面的相关文章希望大家以后多多支持ZaLou.Cn!
领取专属 10元无门槛券
手把手带您无忧上云