服务器后台运行程序
代码运行
要让代码在服务器后台运行,有多种方法。在 Linux 系统中,最常见的有以下几种方式:
**1. 使用 `&` 符号:**
在命令后面添加 `&` 符号可以让程序在后台运行。例如:
```bash
python myscript.py &
```
但是这种方式存在一个问题:当您退出 shell 时,程序会被杀掉。
**2. 使用 `nohup` 命令:**
`nohup` 命令可以让程序脱离终端运行。这样,即使您退出了 shell,程序也不会被杀掉。
```bash
nohup python myscript.py > output.log &
```
在这里,`> output.log` 是将程序的输出重定向到 `output.log` 文件,`&` 符号是将程序放到后台运行。
**3. 使用 `screen` 或 `tmux`:**
`screen` 和 `tmux` 是 Linux 下的工具,可以让你创建多个 shell 窗口(会话),并在其中运行程序。这些窗口(会话)即使在你退出 shell 后,也会继续运行。
例如,使用 `screen` 可以这样:
```bash
screen -S mysession # 创建一个新的 screen 会话
python myscript.py # 在这个会话中运行程序
Ctrl+A, D # 按下 Ctrl+A,然后按下 D,以便脱离当前 screen 会话,但程序会继续运行
```
然后你可以随时重新连接到这个 screen 会话,查看程序的运行情况:
```bash
screen -r mysession
```
**4. 使用系统服务(如 Systemd 或 SysV init):**
这是一种更为复杂的方式,通常用于需要长期运行的程序,如服务器程序。您需要编写一个服务脚本,指定如何启动和停止您的程序,然后注册为系统服务。然后,您可以使用系统的服务管理命令(如 `systemctl start myservice`)来控制您的程序。
查看log
在使用第二种方法(`nohup`命令)时,程序的运行情况通常通过查看你指定的输出文件来进行。例如,如果你使用的命令是:
```bash
nohup python myscript.py > output.log &
```
那么你可以通过查看 `output.log` 文件来了解程序的运行情况:
```bash
cat output.log
```
`cat` 命令用于显示文件内容。
另一种查看 `output.log` 文件内容的方式是使用 `tail` 命令,它可以显示文件的最后几行。例如,`tail -f output.log` 命令会持续显示 `output.log` 文件的最新内容,直到你停止它。
```bash
tail -f output.log
```
`tail -f` 命令常常用于查看正在更新的日志文件。
这样就可以在程序运行的过程中,实时查看程序的输出,了解程序的运行情况。
查看进程
如果你想要查看正在运行的后台进程,你可以使用ps命令。例如,ps aux | grep python可以列出所有包含python关键字的进程。ps aux命令显示的各列含义如下:
- USER:该进程是哪个用户运行的
- PID:进程的ID
- %CPU:该进程占用的CPU使用率
- %MEM:该进程占用的物理内存和总内存的百分比
- VSZ:该进程使用的虚拟内存量(KB)
- RSS:该进程占用的固定的内存量(KB)(驻留中页的数量)
- STAT:该进程的状态
- START:该进程被触发启动时间
- TIME:该进程实际CPU时间
- COMMAND:命令的名称和参数
杀死进程
在 Linux 系统中,你可以使用 `kill` 命令来杀死(结束)某个进程。这个命令需要你知道你想要结束的进程的进程 ID(PID)。你可以通过使用 `ps` 命令来查找这个 PID。
例如,假设你想要结束一个名为 `myscript.py` 的 Python 程序,你可以首先使用 `ps` 命令来找到它的 PID:
```bash
ps aux | grep myscript.py
```
这个命令会列出所有包含 "myscript.py" 的进程。PID 是结果中的第二列。
然后,你可以使用 `kill` 命令来结束这个进程:
```bash
kill -9 <PID>
```
在这个命令中,`<PID>` 是你想要结束的进程的 PID,`-9` 是一个信号,表示 "强制杀死进程"。如果不加 `-9`,系统会首先尝试以更温和的方式结束这个进程。
需要注意的是,只有进程的所有者或者 root 用户才能杀死一个进程。
你也可以使用 `pkill` 或者 `killall` 命令来结束一个或多个进程。例如,`pkill myscript.py` 会杀死所有名为 "myscript.py" 的进程。不过,这两个命令并不是所有系统都支持。
相关文章:
服务器后台运行程序
代码运行 要让代码在服务器后台运行,有多种方法。在 Linux 系统中,最常见的有以下几种方式: **1. 使用 & 符号:** 在命令后面添加 & 符号可以让程序在后台运行。例如: bash python myscript.py &但是…...
大数据课程D7——hadoop的YARN
文章作者邮箱:yugongshiyesina.cn 地址:广东惠州 ▲ 本章节目的 ⚪ 了解YARN的概念和结构; ⚪ 掌握YARN的资源调度流程; ⚪ 了解Hadoop支持的资源调度器:FIFO、Capacity、Fair; ⚪ 掌握YA…...
Rust vs Go:常用语法对比(十三)
题图来自 Go vs. Rust: The Ultimate Performance Battle 241. Yield priority to other threads Explicitly decrease the priority of the current process, so that other execution threads have a better chance to execute now. Then resume normal execution and call f…...
【【51单片机DA转换模块】】
爆改直流电机,DA转换器 main.c #include <REGX52.H> #include "Delay.h" #include "Timer0.h"sbit DAP2^1;unsigned char Counter,Compare; //计数值和比较值,用于输出PWM unsigned char i;void main() {Timer0_Init();whil…...
[SQL挖掘机] - 字符串函数 - substring
介绍: substring函数是在mysql中用于提取字符串的一种函数。它接受一个字符串作为输入,并返回从该字符串中指定位置开始的一部分子串。substring函数可以用于获取字符串中的特定字符或子串,以便进行进一步的处理或分析。 用法: 下面是substring函数的…...
第一百一十六天学习记录:C++提高:STL-string(黑马教学视频)
string基本概念 string是C风格的字符串,而string本质上是一个类 string和char区别 1、char是一个指针 2、string是一个类,类内部封装了char*,管理这个字符串,是一个char型的容器。 特点: string类内部封装了很多成员方…...
Meta-Transformer 多模态学习的统一框架
Meta-Transformer是一个用于多模态学习的新框架,用来处理和关联来自多种模态的信息,如自然语言、图像、点云、音频、视频、时间序列和表格数据,虽然各种数据之间存在固有的差距,但是Meta-Transformer利用冻结编码器从共享标记空间…...
tinkerCAD案例:24.Tinkercad 中的自定义字体
tinkerCAD案例:24.Tinkercad 中的自定义字体 原文 Tinkercad Projects Tinkercad has a fun shape in the Shape Generators section that allows you to upload your own font in SVG format and use it in your designs. I’ve used it for a variety of desi…...
list与流迭代器stream_iterator
运行代码: //list与流迭代器 #include"std_lib_facilities.h" //声明Item类 struct Item {string name;int iid;double value;Item():name(" "),iid(0),value(0.0){}Item(string ss,int ii,double vv):name(ss),iid(ii),value(vv){}friend ist…...
九耶:冯·诺伊曼体系
冯诺伊曼体系(Von Neumann architecture)是一种计算机体系结构,它由匈牙利数学家冯诺伊曼于1945年提出。冯诺伊曼体系是现代计算机体系结构的基础,几乎所有的通用计算机都采用了这种体系结构。 冯诺伊曼体系的核心思想是将计算机硬…...
探索UCI心脏病数据:利用R语言和h2o深度学习构建预测模型
一、引言 随着机器学习模型在实际应用中的广泛应用,人们对于模型的解释性和可理解性日益关注。可解释性机器学习是指能够清晰、透明地解释机器学习模型决策过程的一种方法和技术。在许多领域中,如医疗诊断、金融风险评估和自动驾驶等,解释模型…...
基于 moleculer 微服务架构的智能低代码PaaS 平台源码 可视化开发
低代码开发平台源码 低代码管理系统PaaS 平台 无需代码或通过少量代码就可以快速生成应用程序的开发平台。 本套低代码管理后台可以支持多种企业应用场景,包括但不限于CRM、ERP、OA、BI、IoT、大数据等。无论是传统企业还是新兴企业,都可以使用管理后台…...
xrdp登录显示白屏且红色叉
如上图所示,xrdp登录出现了红色叉加白屏,这是因为不正常关闭导致,解决方法其实挺简单的 #进入/usr/tmp cd /usr/tmp #删除对应用户的kdecache-** 文件(我这里使用的是kde桌面),例如删除ywj用户对应的文件 …...
Docker安装 Mysql 8.x 版本
文章目录 Docker安装 Mysql 8.0.22Mysql 创建账号并授权Mysql 数据迁移同版本数据迁移跨版本数据迁移 Mysql 5.x 版本与 Mysql 8.x版本是两个大版本,这里演示安装Mysql 8.x版本 Docker安装 Mysql 8.0.22 # 下载mysql $ docker pull mysql 默认安装最新…...
【数理知识】刚体 rigid body 及刚体的运动
文章目录 1 刚体2 刚体一般运动1 平移运动2 旋转运动 Ref 1 刚体 刚体是指在运动中和受力作用后,形状和大小不变,而且内部各点的相对位置不变的物体。绝对刚体实际上是不存在的,只是一种理想模型,因为任何物体在受力作用后&#…...
【UE5 多人联机教程】03-创建游戏
效果 步骤 打开“UMG_MainMenu”,增加创建房间按钮的点击事件 添加如下节点 其中,“FUNL Fast Create Widget”是插件自带的函数节点,内容如下: “创建会话”节点指游戏成功创建一个会话后,游戏的其他实例即可发现&am…...
【时间序列预测 】M4
【时间序列预测 】M4 论文题目:The M4 Competition: 100,000 time series and 61 forecasting methods 中文题目: 论文链接: 论文代码: 论文团队: 发表时间: DOI: 引用: 引用数: 摘要…...
SpringCloud微服务实战——搭建企业级开发框架(五十三):微信小程序授权登录增加多租户可配置界面
GitEgg框架集成weixin-java-miniapp工具包以实现微信小程序相关接口调用功能,weixin-java-miniapp底层支持多租户扩展。每个小程序都有唯一的appid,weixin-java-miniapp的多租户实现并不是以租户标识TenantId来区分的,而是在接口调用时&#…...
Stability AI推出Stable Diffusion XL 1.0,文本到图像模型
Stability AI宣布推出Stable Diffusion XL 1.0,这是一个文本到图像的模型,该公司将其描述为迄今为止“最先进的”版本。 Stability AI表示,SDXL 1.0能生成更加鲜明准确的色彩,在对比度、光线和阴影方面做了增强,可生成…...
B076-项目实战--宠物上下架 展示 领养 收购订单
目录 上下架功能提供后台宠物列表实现 前台展示前台宠物列表和详情展示店铺展示 领养分析前台后端PetControllerPetServiceImpl 订单需求分析可能产生订单的模块订单模块额外功能 订单设计表设计流程设计 集成基础代码收购订单创建订单前端后端 上下架功能提供 后台宠物列表实…...
Docker 离线安装指南
参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...
Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...
微信小程序之bind和catch
这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...
基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...
【项目实战】通过多模态+LangGraph实现PPT生成助手
PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...
高危文件识别的常用算法:原理、应用与企业场景
高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...
3403. 从盒子中找出字典序最大的字符串 I
3403. 从盒子中找出字典序最大的字符串 I 题目链接:3403. 从盒子中找出字典序最大的字符串 I 代码如下: class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...
Element Plus 表单(el-form)中关于正整数输入的校验规则
目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入(联动)2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...
