文档章节

linux后台运行程序(secureCRT断掉或关闭后继续运行程序)

python-yzw
 python-yzw
发布于 2016/12/12 13:18
字数 1114
阅读 2
收藏 0
点赞 0
评论 0

secureCRT断掉后想继续运行程序。也就是程序会在后台一直执行到结束。

secureCRT通过ssh联接到client端运行程序,如果关掉窗口或者断开连接时,任务会被kill。

 

nohup python data_combined.py

 

为了程序能够后台执行到结束:

1.可以用&:

比如 python test.py 改成 python test.py &

来调用执行。

2.另外,还有一种方式:通过ctrl+z、bg等一系列的命令,将已经在前台运行的作业放到后台执行:

如果一个作业已经在前台执行,可以通过ctrl+z将该作业放到后台并挂起。然后通过jobs命令查看在后台执行的作业并找到对应的作业ID,执行bg %n(n为通过jobs查到的作业ID)唤醒该作业继续执行。
该方式也存在结果会输出到终端上的情况,同样可以用重定向的方法解决
相关命令:
jobs------------查看在后台执行的进程
fg %n----------将后台执行进程n调到前台执行,n表示jobnumber(通过jobs查看的进程编号,而非pid)
ctrl+z----------将在前台执行的进程,放到后台并挂起
bg %n---------将在后台挂起的进程,继续执行
ctrl+c----------前台进程终止
kill %n---------杀掉后台运行的进程,n表示jobnumber(通过jobs查看的进程编号,而非pid)

 

但上面来两种方法只能解决disconnect时的问题。

如果关闭客户端,程序一样无法执行。当用户注销或者网络中断时,终端后收到SIGHUP信号,从而关闭其所有子进程。

这就要使用nohup执行

 

3.nohup命令:nohup + command 

如 nohup python test.py

nohup就是不挂起的意思,nohup命令会忽略SIGHUP信号,从而终端退出时不会影响到后台作业。后台运行把终端输出存放在当前目录下的nohup.out文件中。客户端关机后重新登陆服务器可以直接查看。

 

4.此外还有screen命令方式也可以实现,不介绍了。

 

 

程序运行后用

ps -ef  | grep '进行id'

或者ps -aux 来查看后来多少进行正在运行,grep自己的用户名,可以看到对应程序

 

 

原理如下:

在Linux/Unix中,有这样几个概念:
进程组(process group):一个或多个进程的集合,每一个进程组有唯一一个进程组ID,即进程组长进程的ID。
会话期(session):一个或多个进程组的集合,有唯一一个会话期首进程(session leader)。会话期ID为首进程的ID。
会话期可以有一个单独的控制终端(controlling terminal)。与控制终端连接的会话期首进程叫做控制进程(controlling process)。当前与终端交互的进程称为前台进程组。其余进程组称为后台进程组。
根据POSIX.1定义:
挂断信号(SIGHUP)默认的动作是终止程序。
当终端接口检测到网络连接断开,将挂断信号发送给控制进程(会话期首进程)。
如果会话期首进程终止,则该信号发送到该会话期前台进程组。
一个进程退出导致一个孤儿进程组中产生时,如果任意一个孤儿进程组进程处于STOP状态,发送SIGHUP和SIGCONT信号到该进程组中所有进程。
因此当网络断开或终端窗口关闭后,控制进程收到SIGHUP信号退出,会导致该会话期内其他进程退出。

 

 

test.py测试脚本:

[wizad@srv26 test]$ cat test.py
import time
dict = {"a" : "apple", "b" : "banana", "g" : "grape", "o" : "orange"}
for k in dict:
  print "dict[%s]="%k,dict[k]

key="c"
if "c" not in dict:
  print "it is not in %s" %key

print "-------------"
print dict.items()
print dict.keys()
print dict.values()

print "-------------"
iter = dict.iteritems()
for it in iter:
  print "iteritems is:",it
  print type(it)

print "-------------"
key_iter = dict.iterkeys()
for ki in key_iter:
  print "key_iter is",ki
  print type(ki)


print "-------------"
val_iter = dict.itervalues()
for vi in val_iter:
  print "val_iter is",vi
  print type(vi)
print "-------------"

print "Start: %s" % time.ctime()
time.sleep(20)
print "End: %s" % time.ctime()

f=open('result','w')
f.write('this is my test for breakup, and to find whether we can finish job')

time.sleep(20)
f.write('/nafter we break the dialog')
f.close

nohup python test.py执行后。关闭客户端,重新登录后,可以查看nohup.out查看运行时屏幕输出。同时查看result看生成结果。

© 著作权归作者所有

共有 人打赏支持
python-yzw
粉丝 3
博文 85
码字总数 42624
作品 0
深圳
程序员
不用FTP使用SecureCRT上传下载文件,并解决rz、sz command not found异常

使用SSH终端操作Linux/UNIX时,很多时候需要传一些文件到服务器上,或说从服务器上下载一些文件,这类文件传输动作一般使用FTP即可,但是需要架设FTP Server,每次传输不太方便,还要另外使用...

thinkyoung ⋅ 2014/12/22 ⋅ 0

VMware虚拟机、centos以及securecrt的安装

前言: 我们都知道,几乎服务器都是linux系统的而不是Windows的,所以非常有必要学习linux知识。但是学习成本有限,所以我们选择装虚拟机,然后在虚拟机中安装linux。 vmware虚拟机: 1、简介:...

贪挽懒月 ⋅ 05/13 ⋅ 0

linux rz/sz上传下载文件命令

一、工具说明 在SecureCRT这样的ssh登录软件里, 通过在Linux界面里输入rz/sz命令来上传/下载文件. 对于某些linux版本, rz/sz默认没有安装所以需要手工安装。 sz: 将选定的文件发送(send)到本...

javazyw ⋅ 04/20 ⋅ 0

10个SecureCRT 小窍门 - 你玩转几个?

10个SecureCRT 小窍门 - 你玩转几个? SecureCRT,相信不用我过多介绍了吧,一款通过telnet,ssh登录远端设备的终端软件。 无论是搞网络的,做系统的甚至写程序的,连接设备必用软件,容易上...

姜汁啤酒 ⋅ 05/17 ⋅ 0

10个提升工作效率的Secure CRT小窍门 - 你玩转了几个?

10个SecureCRT 小窍门 - 你玩转几个? SecureCRT,相信不用我过多介绍了吧,一款通过telnet,ssh登录远端设备的终端软件。 无论是搞网络的,做系统的甚至写程序的,连接设备必用软件,容易上...

sandshell ⋅ 05/18 ⋅ 0

SecureCRT导出服务器列表或配置文件

说明:SecureCRT没有Xshell那么简单有直接导出的功能,但是可以通过技巧的方式来操作。 1、打开SecureCRT,点击菜单栏的【Opitions】->【Global Opitions】 2、在打开的窗口中,选择【Gener...

easonjim ⋅ 2017/12/12 ⋅ 0

SecureCRT优化调整、永久设置、保护眼睛和配色方案

登录SecureCRT SecureCRT优化调整: 通过SecureCRT顶部菜单中的:“选项”--->“会话选项” 1、调整SecureCRT终端显示和回滚缓冲区大小 2、调整字体及光标颜色 3、配置记录SSH操作的日志及输...

sandshell ⋅ 04/30 ⋅ 0

PC,Linux虚拟机,开发板网络设置

1. 目标 实现PC,Linux虚拟机,开发板网络设置三者网络互联。 2. 理论知识 有两种方式,可以实现。 2.1. 情况1:PC机有无线网卡,有线网卡 Windows的有线网卡IP设为192.168.10.3 那么Linux虚...

lxllinux ⋅ 04/13 ⋅ 0

linux中使用ssh保持会话链接,自动登录

在linux的终端下登录server后,新开一个终端,再次登录,依然需要输入密码,securecrt有会话clone功能,不用再次输入密码。linux的ssh作些设置也可以实现类似功能 编辑.ssh/config,添加如下...

757781091 ⋅ 06/08 ⋅ 0

不同连接终端通过密钥方式登录 Linux

近期碰到需要使用密钥登录的情况,不同的连接终端的情况不太一样,所以对此总结一番 一、 密钥对生成 注意:本地主机和目的主机需 ping 通 1)确认服务器是否安装有 ssh 以及openssh服务端 ...

归来仍少年 ⋅ 05/22 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

AppDelegate 设置Root相关

self.window = UIWindow.init(frame: UIScreen.main.bounds) self.window?.backgroundColor = UIColor.white self.window?.makeKeyAndVisible() self.window?.rootViewController = RootTabB......

west_zll ⋅ 3分钟前 ⋅ 0

Java并发系列5--倒计时器CountDownLatch

今天讲一个倒计时器工具,叫CountDownLatch。需要这个工具的场景大概有:当所有的小任务都完成之后,再启动大任务。 先看代码: public class CountDownLatchDemo {static final CountDow...

大大枣 ⋅ 4分钟前 ⋅ 0

SpreadJS使用进阶指南 - 使用 NPM 管理你的项目

前言 SpreadJS作为一款性能出众的纯前端电子表格控件,自2015年发布以来,已经被广泛应用于各领域“在线Excel”数据管理项目中。NPM,作为管理Node.js库最有力的手段,解决了很多NodeJS代码部...

葡萄城控件技术团队 ⋅ 5分钟前 ⋅ 0

Mac下IntelliJ IDEA快捷键大全

https://blog.csdn.net/lisongjia123/article/details/54949364

细节探索者 ⋅ 8分钟前 ⋅ 0

建造者模式

1、工厂模式中创建的对象大都是简单的对象 复杂的产品类并且拥有不同的属性特点的管理就需要用到建造者模式 2、建造者模式: 将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以...

职业搬砖20年 ⋅ 9分钟前 ⋅ 0

Mysql数据库开发 怎么优化SQL语句?

 1) 现场抓出慢查询语句 show full processlist;   2) 配置参数:   slow_query_log_file = ON 慢查询开启开关   long_query_time =2 记录大于2秒的sql语句   log_queries_not_usi...

老男孩Linux培训 ⋅ 10分钟前 ⋅ 0

Laravel 安装执行php artisan migrate 出现字段过长错误

最近在自己研究Laravel Laravel版本:5.6 PHP版本:7.1.9 Mysql版本:5.7.19 Apache版本:2.4.27 系统版本:windows10 首先要保证电脑安装了composer,和node.js 执行命令 composer global ...

Marhal ⋅ 15分钟前 ⋅ 0

ELK6.0日志从收集到处理完整版教程(二)

ELK简介 Elasticsearch 开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。也可以认为ElasticSearch是一...

bz_z ⋅ 18分钟前 ⋅ 0

Spark项目之电商用户行为分析大数据平台之(七)数据调研--基本数据结构介绍

目录 一、user_visit_action(Hive表) 1.1 表的结构 1.2 表的说明 二、user_info(Hive表) 2.1 表的结构 2.2 表的说明 三、task(MySQL表) 3.1 表的结构 3.2 表的说明 四、工作流程...

xiaomin0322 ⋅ 23分钟前 ⋅ 0

评分卡模型剖析之一(woe、IV、ROC、信息熵)

信用评分卡模型在国外是一种成熟的预测方法,尤其在信用风险评估以及金融风险控制领域更是得到了比较广泛的使用,其原理是将模型变量WOE编码方式离散化之后运用logistic回归模型进行的一种二...

火力全開 ⋅ 23分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部