linux下执行并查看后台进程,jobs,ps,top命令 的区别

linux下执行并查看后台进程,jobs,ps,top命令 的区别

背景:王晓茹老师布置的数据挖掘(机器学习)的课程实验 - - 100万条新闻文本的分类。

老师要求了两种方法,朴素贝叶斯和SVM,用队友他们组的服务器跑。

1. 后台运行

用Xshel连上服务器之后,想让进程在后台跑,一般有两种 nohup 和 &:

- 使用&后台运行程序:

  1. 结果会输出到终端
  2. 使用Ctrl + C发送SIGINT信号,程序免疫
  3. 关闭session发送SIGHUP信号,程序关闭

- 使用nohup运行程序:

  1. 结果默认会输出到nohup.out

  2. 使用Ctrl + C发送SIGINT信号,程序关闭

  3. 关闭session发送SIGHUP信号,程序免疫

-nohup和&配合来启动程序

  1. 同时免疫SIGINT(ctrl+C)和SIGHUP(会话关闭)信号

需要注意的是:不要将信息输出到终端标准输出,标准错误输出,而要用日志组件将信息记录到日志里
比如我这里用 nohup python3 svm.py & 来执行svm.py的python程序,会在当前文件夹下生成一个nohup.out的日志文件,记录程序的输出或者错误信息。

2. 查看后台进程

还在这次连接窗口下,你用 ps -l就能查到这个后台进程的进程号比如15411;
当然 ps -a top -p 15411 也都能查到。
这时候你如果把会话连接断了重新连接;

  1. 网上很多博客说 jobs配合nohup 查看后台进程;输入jobs命令,很可能啥也没有。。。这是为什么? 答案就是:
    jobs只能查看当前xshell连接服务器窗口创建的任务。由于在这个新连接下我并没有用nohup启动后台任务,所以就不会有显示
  2. ps -l 和 ps -a 这个时候也找不到你要查的这个后台进程,(这里有疑问)
  3. top -p 15411 或者ps aux命令 可以查到。 ps -ef | grep wz可以查看wz用户的所有进程
  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值