iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >高效管理 Linux 进程:如何后台执行程序、查看进程、终止任务
  • 273
分享到

高效管理 Linux 进程:如何后台执行程序、查看进程、终止任务

linuxunix服务器 2023-09-11 07:09:54 273人浏览 八月长安
摘要

目录 前言一、nohup命令详解1-1、nohup命令介绍1-2、语法格式1-2-1、基础语法介绍1-2-2、执行脚本文件1-2-3、执行python文件1-2-4、拓展延申:在服务器上运行后

目录


前言

高效管理 linux 进程:如何后台执行程序、查看进程、终止任务

一、nohup命令详解

1-1、nohup命令介绍

nohup:nohup是“no hangup”的缩写,用于在后台不挂断的运行命令,使其在用户退出或终端关闭时不受影响。它通过忽略挂断(SIGHUP)信号实现这一功能。换句话说,nohup 是一条 Unix 命令,用于在后台执行程序,即使当前终端会话已经关闭或者断开,程序也可以继续运行。nohup 命令的使用非常简单,只需要在要执行的命令前加上 nohup 和 & 符号即可。

1-2、语法格式

1-2-1、基础语法介绍

nohup 命令的语法如下

nohup command [arg...] &# 其中,command 表示要在后台执行的命令或进程,arg 表示命令或进程的参数,& 符号表示将命令或进程放到后台执行。

注意:nohup 命令的执行结果会输出到当前目录下的 nohup.out 文件中。如果要将命令或进程的输出重定向到其他文件中,可以使用重定向符号(>)指定输出文件的路径。例如:

nohup command [arg...] > output_file &

1-2-2、执行脚本文件

在执行 nohup 命令时,如果 command 是一个脚本文件,那么需要给该脚本文件添加可执行权限(chmod +x script.sh)。否则,会提示 “no such file or directory” 的错误。添加执行权限后执行nohup 命令

nohup sh filename.sh &

1-2-3、执行python文件

执行python文件: nohup 命令通常用于长时间运行的任务,例如在服务器上运行后台进程或者执行需要花费较长时间的脚本。在使用 nohup 命令时,建议将程序的输出重定向到一个日志文件中,以便后续查看程序的运行情况。

例如,要在后台执行一个 Python 脚本,并将输出重定向到一个日志文件中,可以使用以下命令:

nohup python my_script.py > my_script.log &

这将在后台执行 my_script.py 脚本,并将输出重定向到 my_script.log 文件中。如果当前终端会话已经关闭或者断开,my_script.py 仍将继续在后台运行,并将输出写入到 my_script.log 文件中。

1-2-4、拓展延申:在服务器上运行后台进程

拓展延申:nohup 命令的一个常见用途是在服务器上运行后台进程,例如 WEB 服务器、数据库服务器等。在执行这些服务时,可以使用 nohup 命令将服务放到后台运行,并将输出重定向到日志文件中。

例如,在 Linux 系统上,要在后台启动一个 Apache Web 服务器,并将输出重定向到日志文件中,可以使用以下命令:

nohup /usr/local/apache2/bin/httpd -k start > /var/log/Httpd.log &
这将在后台启动 Apache Web 服务器,并将输出重定向到 /var/log/httpd.log 文件中。

需要注意的是,nohup 命令并不是万能的,它不能保证被执行的命令或进程一定会一直运行。如果命令或进程本身存在问题或异常,仍然可能会被终止或崩溃。因此,在使用 nohup 命令时,仍需要对被执行的命令或进程进行监控和管理。

1-2-5、nohup和&的区别

&:是指在后台运行,当用户退出(挂起)的时候,命令自动跟着结束

nohup:不挂断的运行,注意并没有后台运行的功能,就是指用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如我们断开ssh连接都不会影响他的运行,注意了nohup没有后台运行的意思;&才是后台运行, 使用nohup后关闭了标准输入,终端不能再接受任何输入。

因此将nohup和&结合使用,就可以实现使命令永久地在后台执行的功能,结合使用后,终端可以接受任何输入。

二、进程查看

2-1、jobs命令(基本不用)

jobs命令:jobs命令用于查看当前会话中的后台任务。它只能显示当前终端中的后台进程,即与当前会话关联的进程。一些常用的jobs参数如下:

  • -l:列出进程ID以及任务状态
  • -n:仅列出状态发生变化的任务
  • -r:仅列出正在运行的任务
  • -s:仅列出已停止的任务

例如,使用jobs -l命令可以查看当前会话中的后台任务及其进程ID。

2-2、ps命令

ps命令:ps命令用于报告当前系统的进程状态。与jobs命令不同,ps可以显示所有用户的进程信息,而不仅仅是当前会话。一些常用的ps参数如下:

  • -A:显示所有进程
  • -u:按用户显示进程,显示进程的详细信息,包括用户、进程号、CPU 占用、内存占用等信息。
  • -x:显示无控制终端的进程
  • -e:显示环境变量
  • -aux: 显示所有进程的详细信息,包括用户、进程号、占用 CPU 和内存等信息。(一般直接使用aux就可以)

例如,使用ps -A命令可以查看系统中的所有进程。要查找特定进程,可以将输出通过管道传递给grep命令,如ps -A | grep my_script.sh。
在这里插入图片描述
在这里插入图片描述

2-3、top命令

top命令:top命令提供了一个实时动态的进程监视器。它可以查看系统中所有进程的实时状态,并根据资源占用对进程进行排序。在top界面中,你可以看到进程ID、用户、CPU占用、内存占用等信息。

要查找特定进程,可以在top界面中按u键,输入用户名以筛选该用户的进程。此外,你还可以按o键,然后输入筛选条件,如COMMAND=my_script.sh。按回车键确认,top将仅显示与条件匹配的进程。最后,按ctrl+c退出预览。
在这里插入图片描述

三、终止进程

3-1、进程终止概念介绍

进程终止指的是一个正在运行的进程结束其执行的过程。进程终止可以是正常的(例如,进程完成了它的任务,或者用户通过操作系统的接口请求终止进程),也可以是非正常的(例如,进程崩溃或遇到错误)。以下是关于进程终止的一些详细信息:

  • 正常终止:当一个进程完成了它的任务并且正常退出时,它会通知操作系统,操作系统会将进程标记为“已退出”。这时操作系统会释放进程所占用的内存、关闭与进程相关的文件等资源,并将进程的退出代码(一个整数值)返回给父进程。父进程可以通过读取这个退出代码来确定进程完成的状态。如果父进程没有及时调用wait()或waitpid()函数来获取退出状态,那么进程会成为“僵尸进程”,直到父进程获取到退出状态或者父进程本身终止。

  • 非正常终止:当一个进程遇到错误或者崩溃时,它可能会被操作系统强制终止。例如,如果进程发生了段错误(访问了未分配的内存),或者进程超过了允许的资源限制(如内存限制或时间限制),那么操作系统会终止这个进程并向其父进程报告错误信息。在这种情况下,父进程可以通过调用wait()或waitpid()函数来获取进程终止的状态。

  • 信号终止:操作系统可以向进程发送信号来终止进程。例如,如果用户在命令行中按下Ctrl+C,操作系统会向正在运行的进程发送SIGINT信号,告诉它终止执行。进程可以捕获这些信号并采取适当的措施,例如,保存进度并安全地终止执行。如果进程没有捕获这些信号,那么操作系统会默认终止进程,并向其父进程报告错误信息。

总之,进程终止是一个非常重要的概念,对于操作系统的稳定性和安全性具有至关重要的作用。了解进程终止的原因和机制,可以帮助我们更好地理解操作系统的工作原理,从而更好地开发和调试应用程序。

3-2、kill命令介绍

kill 命令用于终止指定的进程。常见的选项包括

  • -9:强制终止进程,相当于发送 SIGKILL 信号。
  • -15(默认选项):正常终止进程,相当于发送 SIGTERM 信号。

例如,要杀死进程号为 12345 的进程,可以使用以下命令:

# 使用top、ps等命令查看进程号kill 12345

这将向进程号为 12345 的进程发送 SIGTERM 信号,使其正常终止。

如果进程无法正常终止,可以使用 -9 选项强制终止进程。例如:

kill -9 12345

这将向进程号为 12345 的进程发送 SIGKILL 信号,使其强制终止。

需要注意的是,杀死进程可能会导致未保存的数据丢失或其他不可预知的后果。在使用 kill 命令时,应该尽量避免误杀进程,确保只杀死必要的进程。


总结

知识点增加了!

来源地址:https://blog.csdn.net/weixin_42475060/article/details/130082364

--结束END--

本文标题: 高效管理 Linux 进程:如何后台执行程序、查看进程、终止任务

本文链接: https://www.lsjlt.com/news/402792.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 高效管理 Linux 进程:如何后台执行程序、查看进程、终止任务
    目录 前言一、nohup命令详解1-1、nohup命令介绍1-2、语法格式1-2-1、基础语法介绍1-2-2、执行脚本文件1-2-3、执行python文件1-2-4、拓展延申:在服务器上运行后...
    99+
    2023-09-11
    linux unix 服务器
  • Linux如何查看后台进程
    这篇文章给大家分享的是有关Linux如何查看后台进程的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。LINUX后台进程也叫守护进程(Daemon),是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任...
    99+
    2023-06-28
  • linux如何查找进程及终止进程操作
    本篇内容主要讲解“linux如何查找进程及终止进程操作”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux如何查找进程及终止进程操作”吧!使用linux操作系统,难免遇到一些软件“卡壳”的问...
    99+
    2023-06-13
  • 如何进行Linux任务的前后台管理
    本篇文章给大家分享的是有关如何进行Linux任务的前后台管理,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。我们知道,Linux 是一个多任务的操作系统,也就是说,在同一时间,系...
    99+
    2023-06-05
  • Linux如何使用Supervisor管理后台进程
    小编给大家分享一下Linux如何使用Supervisor管理后台进程,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! 1.安装easy_install supe...
    99+
    2024-04-02
  • Node.js使用多进程提高任务执行效率
    最近我有个学员写了个 Node.js 脚本程序,定时从某个服务器下载文件,并向另一个云服务商上传文件。 但是每次只能先下载一个文件,再去上传一个文件。效率比较低。于是他向我请教,怎么...
    99+
    2024-04-02
  • ubuntu如何查看执行的进程号
    ubuntu查看执行进程号的方法:1、打开终端;2、输入命令查看所有执行的进程号,根据进程名获得对应程序的进程号即可。具体操作步骤:使用快捷键【Ctrl+Alt+T】打开终端;输入以下命令查看所有执行的进程号。ps -aux #查看所有运行...
    99+
    2024-04-02
  • Linux系统查看后台运行进程命令有哪些
    这篇文章主要介绍Linux系统查看后台运行进程命令有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.jobs查看当前终端后台运行命令 ,终端关闭后无法查看。jobs -l选项可显示当前终端所有任务的PID,jo...
    99+
    2023-06-28
  • Linux中如何让进程在后台运行
    本篇内容介绍了“Linux中如何让进程在后台运行”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在Linux中,如果要让进程在后台运行,一般情...
    99+
    2023-06-10
  • linux如何查看进程运行时间
    在Linux系统中,可以使用`ps`命令来查看进程的运行时间。具体的命令格式为:```ps -p -o etime```其中,``...
    99+
    2023-09-13
    linux
  • Linux 进程管理中如何进行调度和进程切换
    这篇文章将为大家详细讲解有关Linux 进程管理中如何进行调度和进程切换,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。什么是调度按照某种调度算法,从进程的ready队列中选择进程给CPU。为...
    99+
    2023-06-15
  • 如何查看Linux系统中的进程管理工具SystemD
    这篇文章主要介绍“如何查看Linux系统中的进程管理工具SystemD”,在日常操作中,相信很多人在如何查看Linux系统中的进程管理工具SystemD问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何查看L...
    99+
    2023-06-12
  • Linux系统如何查看进程运行时间
    这篇“Linux系统如何查看进程运行时间”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“Linux系统如何查看进程运行时间”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的慢慢理解,接下来...
    99+
    2023-06-28
  • C++如何采用Daemon进行后台程序的部署
    目录一、如何采用Daemon进行后台程序的部署1. 创建子进程2. 终止父进程3. 创建新的会话4. 改变当前工作目录5. 重设文件权限掩码二. 代码示例一、如何采用Daemon进行...
    99+
    2023-05-18
    C++后台程序的部署 C++ Daemon后台程序 c++程序部署
  • 微信小程序如何与后台PHP进行交互
    这篇文章将为大家详细讲解有关微信小程序如何与后台PHP进行交互,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体如下:接下来将讲后台如何与前台进行数据及图片之间的交互,相...
    99+
    2024-04-02
  • Linux中如何关闭终端或实现程序后台运行
    这篇文章主要介绍Linux中如何关闭终端或实现程序后台运行,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!nohup最常用的命令就是【nohup】,从名字就看出是否挂起运行命令,关闭终端或者退出某个账号,进程也继续保持...
    99+
    2023-06-15
  • C++并发编程:如何进行任务调度和线程池管理?
    任务调度和线程池管理是 c++++ 并发编程中提高效率和可扩展性的关键。任务调度:使用 std::thread 创建新线程。使用 join() 方法加入线程。线程池管理:创建 threa...
    99+
    2024-05-06
    c++ 并发编程
  • 如何在 Linux 中查看正在运行的进程
    在 Linux 中,可以使用以下命令来查看正在运行的进程:1. `top` 命令:可以实时地显示系统的整体运行情况,包括 CPU 使...
    99+
    2023-09-21
    linux
  • linux如何查看某个进程的运行时间
    小编给大家分享一下linux如何查看某个进程的运行时间,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!查看某个进程的运行时间可能,大部分同学只会使用 ps aux,其实可以通过 -o 参数,指定...
    99+
    2023-06-27
  • Linux如何进行网络管理、软件安装、进程管理操作
    这篇文章给大家分享的是有关Linux如何进行网络管理、软件安装、进程管理操作的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 1、网络管理1.1 网络状态查看在Linux中经常使用ifconfig,rou...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作