我用nohup命令有问题。
当我运行我的工作时,我有很多数据。输出nohup。Out变得太大,我的进程变慢了。我如何运行这个命令而不得到noup .out?
我用nohup命令有问题。
当我运行我的工作时,我有很多数据。输出nohup。Out变得太大,我的进程变慢了。我如何运行这个命令而不得到noup .out?
当前回答
您可以执行如下命令。
nohup <your command> & > <outputfile> 2>&1 &
如。 我在脚本里面有一个nohup命令
./Runjob.sh > sparkConcuurent.out 2>&1
其他回答
下面的命令可以让你在后台运行一些东西,而不会得到noup .out:
nohup command |tee &
通过这种方式,你将能够在远程服务器上运行脚本时获得控制台输出:
您可以执行如下命令。
nohup <your command> & > <outputfile> 2>&1 &
如。 我在脚本里面有一个nohup命令
./Runjob.sh > sparkConcuurent.out 2>&1
sudo bash -c "nohup /opt/viptel/viptel_bin/log.sh $* &> /dev/null" &
重定向sudo的输出会导致sudo重新询问密码,因此需要一种笨拙的机制来执行这种变体。
nohup some_command > /dev/null 2>&1&
这就是你所需要做的!
如果你面前的mac/linux上有一个BASH shell,你可以尝试以下步骤来实际理解重定向:
创建一个名为zz.sh的2行脚本
#!/bin/bash
echo "Hello. This is a proper command"
junk_errorcommand
echo命令的输出进入STDOUT文件流(文件描述符1)。 error命令的输出进入STDERR文件流(文件描述符2)。
目前,只需执行脚本即可将STDOUT和STDERR发送到屏幕。
./zz.sh
现在从标准重定向开始:
zz.sh > zfile.txt
在上面,“echo”(STDOUT)进入zfile.txt。而“错误”(STDERR)显示在屏幕上。
以上同:
zz.sh 1> zfile.txt
现在您可以尝试相反的方法,将“error”STDERR重定向到文件中。来自“echo”命令的STDOUT显示在屏幕上。
zz.sh 2> zfile.txt
将上述两者结合起来,你会得到:
zz.sh 1> zfile.txt 2>&1
解释:
首先,发送stdout1到zfile.txt 然后,将STDERR 2发送到stdout1本身(使用&1指针)。 因此,1和2都进入同一个文件(zfile.txt)
最后,你可以把所有的东西都打包到nohup命令&中,在后台运行:
nohup zz.sh 1> zfile.txt 2>&1&