Linux+服务器后台运行程序

news2024/11/16 17:44:38

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

screen

假如遇到一些比较费时间的程序,但是又不能一直开着电脑观察,这时可以使用screen。
1、如果在screenCRT中开启窗口,然后运行一个程序,当注销时,程序会自动毁掉。
2、使用nohup可以解决此问题,把程序放到后台运行,查看nohup.out可以查看程序运行的怎样了,但是使用nohup把程序放到后台,就再也无法切换程序到前台了,而screen可以。

Screen,就可以理解成Linux下的会话保持软件。
Screen被称之为一个全屏窗口管理器,可以轻松在一个物理终端上获得多个虚拟终端的效果。

服务器终端输入:screen 新建窗口,之后可以输入运行命令

screen -S 会话名 同上,并且取名,方便管理
ctrl-a d 先同时按ctrl+a,再按d,显示[detached],回到主会话
screen -ls查看当前回话和id
screen -r 会话名/会话id 返回某个screen会话,若有重叠会话名,采用screen -r 会话id.会话名.
screen -S id -X quit 删除会话
screen终端输入exit,彻底退出,屏幕显示[screen is terminating]即可

nohup

nohup 详解 - 今孝 - 博客园 (cnblogs.com)
nohup和&后台运行,进程查看及终止 - 慕尘 - 博客园 (cnblogs.com)

nohup指不断地运行,是no hang up的缩写,指不间断,不挂断。

示例

nohup python test.py > tmp.log 2>&1 &

命令解析
用途:LINUX命令用法,不挂断地运行命令。
语法:nohup Command [ Arg … ] [ & ]
描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部。

进入要运行的py文件目录下:

nohup python -u test.py > test.log 2>&1 &

nohup 不挂起的意思 python test.py python运行test.py文件
-u 代表程序不启用缓存,也就是把输出直接放到log中,没这个参数的话,log文件的生成会有延迟> test.log 将输出日志保存到这个log中

2>1 2与>结合代表错误重定向,而1则代表错误重定向到一个文件1,而不代表标准输出; 2>&1 换成2>&1,&

与1结合就代表标准输出了,就变成错误重定向到标准输出.

& 最后一个& ,代表该命令在后台执行

命令运行后会有提示,示例:

[1] 2880
代表进程2880中运行。

查看nohub命令下运行的所有后台进程:

jobs
jobs -l

查看后台运行的所有进程:

ps -aux

查看后台运行的所有python 进程:

ps aux |grep python

或者

ps -ef | grep python

删除进程

kill -9 进程id

-9 的意思是强制删除

&

指在后台运行。

1.先查看所有进程

ps -ux

在这里插入图片描述
在这里插入图片描述
还可以使用

   ps -ef | grep python

在这里插入图片描述
第一列数字为进程号

2.根据进程号关闭程序

kill -9 pid

See https://www.cnblogs.com/ytxwzqin/p/16264385.html
https://blog.csdn.net/weixin_39777626/article/details/103292882
服务器前台与后台切换运行

在这里插入图片描述
https://zhuanlan.zhihu.com/p/380607264

测试

当前测试的程序Test2.py为前台运行,通过按命令:Ctrl+Z,暂停。使用命令bg %1则进入后台运行

Last login: Wed Jan 31 12:24:37 2024 from 113.54.211.15
[TT@ln01 ~]$  python /home/TT/Test2.py
^Z
[1]+  Stopped         python /home/TT/Test2.py
[TT@ln01 ~]$ jobs
[1]+  Stopped         python /home/TT/Test2.py
[TT@ln01 ~]$ bg %1
[1]+ python /home/TT/Test2.py &
[TT@ln01 ~]$ kill -9 88711
[TT@ln01 ~]$

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1423698.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ArrayList集合初始化长度是多少,初始化的时候分配内存空间吗

ArrayList一旦初始化,在内存中就会分配空间吗 是的,当ArrayList在Java中初始化时,即使它没有添加任何元素,也会立即分配内存空间。具体来说,对于默认构造函数创建的ArrayList(即不指定初始容量&#xff09…

Python代码覆盖率工具

Coverage.py是一个用于测量Python程序代码覆盖率的工具。它监视您的程序,注意代码的哪些部分已经执行,然后分析源代码,以确定哪些代码本可以执行,但没有执行。 覆盖率测量通常用于衡量测试的有效性。它可以显示代码的哪些部分正在…

Yolo v8 入门学习之采用 coco128 数据集进行图片检测测试

示例入门代码 from ultralytics import YOLO import cv2 import matplotlib.pyplot as plt import matplotlib.image as mpimgdef test():# Create a new YOLO model from scratchmodel YOLO(yolov8n.yaml)# Load a pretrained YOLO model (recommended for training)model …

【Cookie反爬虫】某采购网站动态Cookie加点选验证码校验分析与实战

文章目录 1. 写在前面2. 请求分析3. JS反混淆4. 深度分析 【作者主页】:吴秋霖 【作者介绍】:Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作! 【作者推荐】:对JS逆向感兴趣的朋…

CentOS7中安装ElasticSearch

文章目录 检测是否安装了Elasticsearch安装JDK下载java配置 下载Elasticsearch解压安装Elasticsearch修改配置文件启动Elasticsearch常见问题 ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasti…

Kotlin 协程1:深入理解withContext

Kotlin 协程1:深入理解withContext 引言 在现代编程中,异步编程已经变得非常重要。在 Kotlin 中,协程提供了一种优雅和高效的方式来处理异步编程和并发。在这篇文章中,我们将深入探讨 Kotlin 协程中的一个重要函数:wi…

SpringMVC实现对网页的访问,在请求控制器中创建处理请求的方法

目录 测试HelloWorld RequestMapping注解 RequestMapping注解的位置 RequestMapping注解的value属性 RequestMapping注解的method属性 SpringMVC支持路径中的占位符(重点) SpringMVC获取请求参数 1、通过ServletAPI获取 2、通过控制器方法的形参…

华为VRP系统简介

因为现在国内主流是华为、华三、锐捷的设备趋势,然后考的证书也是相关的,对于华为设备的一个了解也是需要的。 一、VRP概述 华为的VRP(通用路由平台)是华为公司数据通信产品的通用操作系统平台,作为华为公司从低端到核心的全系列路由器、以太…

Narak靶机渗透

靶场下载地址:https://download.vulnhub.com/ha/narak.ova 一、靶机配置 导入靶机 攻击机kali的IP为192.168.245.131,靶机的IP设置成NAT模式。 二、信息搜集 用攻击机对存活主机进行扫描及端口探测 对发现的存活主机进行全端口扫描,还是只开…

Mac删除自带的ABC输入法,简单快捷

一、下载PlistEdit Pro软件 二、终端执行 sudo open ~/Library/Preferences/com.apple.HIToolbox.plist 三、其中有一个数字下面的KeyboardLayout Name的value为“ABC”,这就是ABC输入法,点击上面的Delete按钮,删除整项ABC内容&#xff0c…

设置frp在ubuntu开机自启

要在 Ubuntu 上启动 FRP,您可以按照以下步骤进行操作: 下载适用于 Ubuntu 的 FRP。您可以从官方网站下载最新版本的 FRP:https://github.com/fatedier/frp/releases 解压下载的 FRP 文件。您可以使用以下命令从终端解压文件: t…

面试篇-SpringBoot自动配置原理

在Spring Boot中,自动装配是一种强大的功能,它允许开发者快速、简单地配置和管理应用程序的组件。以下是对Spring Boot自动装配原理的详细解释: Spring BootApplication注解源码: SpringBootApplication注解是一个复合注解&#x…

91 C++对象模型探索。RTTI运行时类型识别回顾 与 存储位置介绍

一,RTTI 运行时类型识别,简单回顾 C运行时类型识别RTTI,要求父类这种必须 至少有一个虚函数,如果父类中没有虚函数,那么得到的RTTI就不准确; RTTI就可以在执行期间查询一个多态指针,或者多态应…

初始化和赋值

列表初始化 #include <iostream>struct test{int a; };class object{ public:object(int v10):a{v}{}int a; };int main(){test t1;test t2{};std::cout<<t1.a<<std::endl;std::cout<<t2.a<<std::endl;object b2{11};std::cout<<b2.a<…

详解SpringCloud微服务技术栈:深入ElasticSearch(4)——ES集群

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位大四、研0学生&#xff0c;正在努力准备大四暑假的实习 &#x1f30c;上期文章&#xff1a;详解SpringCloud微服务技术栈&#xff1a;深入ElasticSearch&#xff08;3&#xff09;——数据同步&#xff08;酒店管理项目&a…

C++ 之LeetCode刷题记录(二十四)

&#x1f604;&#x1f60a;&#x1f606;&#x1f603;&#x1f604;&#x1f60a;&#x1f606;&#x1f603; 开始cpp刷题之旅。 目标&#xff1a;执行用时击败90%以上使用 C 的用户。 119. 杨辉三角 II 给定一个非负索引 rowIndex&#xff0c;返回「杨辉三角」的第 rowI…

TI AM5708工业派

文章目录 一、TI AM5708工业派简介二、主要使用的功能三、J12 扩展接口四、NFS代码实现总结 一、TI AM5708工业派简介 TI AM5708工业派是基于美国德州仪器&#xff08;TI&#xff09;的AM5708处理器所开发的智能硬件工业派&#xff0c;主要面向工业生产、图像处理、智能人机交…

基于单片机的烟草干燥温度控制系统设计

摘 要&#xff1a;烟草干燥研究一直备受国内外烟草工作者的重视&#xff0c;在烟草干燥的方法中热风管处理法是利用热空气对流使烟草达到干燥的效果&#xff0c;这样可以控制烟草干燥时的温度&#xff0c;使烟草能够更好更快地干燥&#xff0c;因此温度的检测和控制是很重要的。…

C语言基础14

今天是学习嵌入式相关内容的第十五天&#xff0c;以下是今日所学内容 1.内存管理: 1.malloc void *malloc(size_t size); 2.free void free(void *ptr); 练习:要求申请堆区空间,将"hello world"存放到堆区空间,完成打印 2.内存溢出: 内存溢出也…

Java多线程--线程安全问题练习题

文章目录 &#xff08;1&#xff09;练习题1&#xff08;2&#xff09;练习题2&#xff08;3&#xff09;练习题3 现在咱们线程一共说了这么几件事情&#xff0c;如下&#xff1a; 具体文章见专栏。 接下来看几个练习题吧。 &#xff08;1&#xff09;练习题1 &#x1f30b;题…