文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-09-11 07:06

关注

目录


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

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参数如下:

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

2-2、ps命令

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

例如,使用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、进程终止概念介绍

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

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

3-2、kill命令介绍

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

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

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

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

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

kill -9 12345

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

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


知识点增加了!

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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-人工智能
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯