【Linux】Linux系统后台运行脚本方法

这篇具有很好参考价值的文章主要介绍了【Linux】Linux系统后台运行脚本方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

我们使用Linux搭建服务器之后,经常需要在服务器上运行一些脚本,例如定期检查网络连通性并保存出错日志等。在写好批处理文件(.sh)文件之后,如果是Ubuntu系统,直接登陆上去之后单独启动一个终端并运行.sh文件就可以了。但是如果是没有GUI的Cent OS的话,在我们断开连接、关闭终端之后,终端上所运行的脚本也会随之终止。
因此,需要使用特定的命令,让脚本即使在终端关闭后也能保持在后台运行。下文所介绍的方法,通用于Ubuntu和Cent OS。


正文

启动脚本

使用命令 nohup sh XXX.sh &>/dev/null &
【Linux】Linux系统后台运行脚本方法
执行成功,会返回该进程的id。此时即使关闭终端,该脚本依旧在后台运行。

详解:
①sh XXX.sh为执行该脚本。
②在命令末尾加上&符号,表示将该命令放到后台运行。但此时该命令的标准输出、错误输出仍在前台。
③>/dev/null 表示将输出重定向到/dev/null中。/dev/null是一个特殊文件,会将传入其中的数据全部丢弃,即删除掉。

  • 因为重定向默认参数为1,即>/dev/null相当于1>/dev/null,将标准输出重定向到其中,而错误输出(异常信息)仍在控制台正常输出。
  • 如果想要只输出标准输出,忽略错误输出,则使用2>/dev/null。
  • 如果想两者都忽略,则使用>/dev/null 2>&1,这也可以简写为&>/dev/null,也就是最上方示例中所用的。
  • 上一条顺序不能反过来变成2>&1 >/deb/null,这种用法的效果是只输出错误输出,而标准输出被重定向到/dev/null中丢弃了,相当于只写了>/dev/null。

④nohup 表示在终端关闭后,此命令不接受挂起信号,仍保持运行。

查看正在运行的脚本

使用命令 ps -ef |grep XXX.sh
【Linux】Linux系统后台运行脚本方法
若该脚本正在运行中,此处会有2条进程信息:第一条为脚本进程,第二条为此命令本身。每行的第二个数据(如3403和3431)即为该进程的id。

详解:
①ps(process status) 默认只会显示运行在当前控制台下,属于当前用户的进程。
②-e 等同于-A,显示所有进程。
③-f 显示完整格式的输出
④| 将左侧的输出结果,作为右侧的输入
⑤grep(Global search REgular expression and Print out the line),文本搜索工具
⑥XXX.sh 需要搜索的文本

结束脚本运行

使用命令 kill -15 [进程id]
【Linux】Linux系统后台运行脚本方法
详解:
①kill -15 终止进程。若无法正常终止,可以改用kill -9 强制删除进程。
②[进程id] 在脚本启动时自动生成,也可通过ps命令查看。文章来源地址https://www.toymoban.com/news/detail-443363.html

到了这里,关于【Linux】Linux系统后台运行脚本方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • PowerShell:因为在此系统上禁止运行脚本,解决方法

    运行powershell脚本遇见报错: 无法加载文件 C:UsersDHDesktopcsrename.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。 查了查之后发现是在计算机上启动 Windows PowerShell 时,执行策略很可能是 Restricted(默认

    2024年02月07日
    浏览(41)
  • linux 后台运行程序命令

    这篇文章记录了两种linux程序后台运行的方式,两种方式略有区别,各位根据需求使用。 通过 cmd 命令后加 完成程序启动并在后台运行。 可通过重定向的方式把日志打印到指定文件中如cmd cmd.out 21 需要注意的是 当终端断开时,任务就会停止 默认情况下,该命令的所有输出都

    2024年02月16日
    浏览(35)
  • Linux下后台运行Java程序

    用Java编写了一个程序(可执行的jar),需要在Linux中启动并持续运行 直接执行程序后,在程序执行期间,无法在当前会话中再执行其他操作 直接执行程序后,按Ctrl+C中断;这时虽然可以在当前会话中执行其他操作,但是程序也结束运行了 直接执行程序后,在新会话中不仅可

    2024年02月12日
    浏览(25)
  • Linux+服务器后台运行程序

    在Linux服务器直接运行程序,程序运行的时间较长,程序经常会因为网络连接问题异常终止,一直盯着程序运行又费时费力,这时后台运行程序是更好的解决方式。But,如果服务器重启了,那所有进程都断掉了,只能重新跑代码。 screen 假如遇到一些比较费时间的程序,但是又

    2024年02月22日
    浏览(35)
  • nodejs服务后台持续运行三种方法

    nodejs服务后台持续运行三种方法 一、利用 forever   推荐 forever是一个nodejs守护进程,完全由命令行操控。forever会监控nodejs服务,并在服务挂掉后进行重启。 1、安装 forever npm install forever -g 2、启动服务 service forever start 3、使用 forever 启动 js 文件 forever start index.js 4、停止 js

    2024年02月12日
    浏览(26)
  • “Linux免除系统交互操作方法、expect自动化交互工具” 及 “SSH批量修改主机密码脚本”

    案例:为机器磁盘进行分区并实现挂载,免交互式操作,如何实现? 注意:有些命令的交互操作提示是不算在标准输出和错误输出中的,此时该方法不适用 注意:命令的交互操作提示是不算终端窗口的,此时该方法不适用 一. expect 简介 expect 工具是一个根据脚本与其他交互

    2024年02月08日
    浏览(41)
  • Linux 系统查看当前正在运行的某个进程的详细执行脚本和目录ls -l /proc/PID/cwd和 ls -l /proc/PID/exe

    首先使用 ps 命令查看当前正在运行的某个进程的 PID,例如: 这个命令会列出所有包含 your_process_name 信息的进程ID(也就是PID)和进程名称。你需要根据进程的名称来找到你想要查看的进程对应的PID。 然后进入 /proc 目录,你可以使用以下命令查看该 PID 对应的执行脚本: 其

    2024年02月11日
    浏览(38)
  • 项目实战-RuoYi后台管理系统-登录功能Postman接口自动化脚本分享

        先来回顾一下之前写过的关于RuoYi后台管理系统项目实战相关的几篇文章: 测试项目实战----RuoYi后台管理系统 项目实战-RuoYi后台管理系统-用户管理测试点设计 项目实战-RuoYi后台管理系统-登录相关接口分析 Docker搭建webdis用于提供api查询redis中的数据 项目实战-RuoYi后台管

    2023年04月20日
    浏览(34)
  • Linux环境运行mysql脚本

    在学习《MySQL 必知必会》这本书时,里面用到了一些样例表,这些表需要我们在自己的环境执行通过执行脚本填充。然后就可以使用mysql语句进行查询和修改了。在填充时需要用到两个脚本: 在linux环境下运行的方法如下: 1、登录我们自己的myql服务器 2、创建一个新的mysql数

    2024年02月11日
    浏览(36)
  • Flask-flask系统运行后台轮询线程

    对于有些flask系统,后台需要启动轮询线程,执行特定的任务,以下是一个简单的例子。 不能以flask-executor启动异步执行的方式启动后台线程,会运行报错:executor需要request上下文; threading内需要传递app的上下文,否则会报错:未在app的上下文内。

    2024年02月12日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包