远程服务器进行计算中的问题

Linux 远程执行程序遇到的问题记录

前段时间需要用服务器进行计算,首次使用服务器计算,没有经验,遇到几个问题,在此记录一下.

问题一

我是用matlab的程序进行计算的,最开始的时候,我直接使用ssh远程连接到服务器的终端,直接打服务器上的matlab执行代码,在程序连续跑了三天之后,由于未知的原因,本地计算机突然断网,导致到服务器的连接也断开了,连续三天的计算就此失败,google一番,找到了解决的方案,在远程使用服务器进行计算的时候,为了防止各种原因导致的程序挂掉,需要使用nohup 命令来执行程序,代码如下

nohup matlab  -nodislpay -r "main" &

其中main是我要执行的matlab的脚本名称,nohup命令会忽略所有挂断信号,用这个命令可以解决这个问题

问题二

本以为这样就没有问题了,很快又出现了新的问题,在用上面这个命令进行计算的时候,有时候会出现问题,nohup命令会自动在当前路径下生成一个日志文件"nohup.out",用来记录在程序执行的过程中出现的问题,一般情况下这个文件大小很小,如果一直报错,这个文件的大小就会非常大,在有的时候,这个文件的大小以肉眼可见 的速度变大,打开日志文件,发现错误:
无法从终端提取字符
最后发现,为了避免这个问题,需要将nohup 命令写在shell脚本里面,代码如下

#!/bin/bash
nohup matlab -r -nodisplay "main" &

写在shell脚本中运行之后,nohup.out日志文件中再也没有出现这个错误,计算顺利进行

问题三

在linux 命令行中执行程序,有时候我们不希望它将信息输出到屏幕,这种情况下可以使用这个命令来解决这个问题

matlab >>/dev/null 2>&1  &

以matlab这个指令为例,/dev/null 可以视作一个黑洞,将所有信息输出到它里面

解读

1.2>&1 这个部分是将错误转输出到标准输出
2.1> 是标准信息的输出路径
3.2> 是错误信息的输出路径,2>&1 是将错误信息也输出到标准输出

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值