1.nohup

nohup /usr/local/node/bin/node /www/im/chat.js >> /usr/local/node/output.log 2>&1 &

进程号7585

在运行shell脚本时,我们常常会见 "nohup sh test.sh /dev/null 2>&1" ,那么为什么要这么写,直接sh test.sh脚本不行嘛?它的作用究竟是什么?

首先先说nohup,这个简单,no hang up,就是不挂起的意思。

如果你正在运行一个进程,而这个进程可能要运行很久,比如每小时统计个数据,统计个77 49个小时,那么账户可能在这期间就退出了,终端也关闭了,而你的进程不能够结束,那么这个命令【可以让你在退出账户/关闭终端之后继续运行相应的进程】。

该命令的一般形式为: nohup command &

那么 nohup sh test.sh > /dev/null 2>&1 & 又是什么意思呢?  网上很多文章讲解的很深入,但不够通俗易懂,我们就讲点简单的。

在这个语句中,出现了2、1两个数字,要说明的是,& 0表示键盘输入|1表示屏幕输出|2表示错误输出

假设没有&,2>1,2与>结合代表错误重定向,而1代表1个文件,这句话意思是错误输出重定向到一个文件1中,而不代表标准输出;换成2>&1,&与1就代表标准输出了。

这句话的意思就是,后台执行test.sh这个脚本,把标准错误重定向到标准输出,然后扔到/dev/null中去,即:把所有标准输出和错误输出都扔到垃圾桶里。

一点一点来分析,先来看这句

command > out.txt 2>&1 &

command > out.txt 是将command的输出重定向到out.txt文件中,也就是说输出内容不打到屏幕上,而是写入到out.txt文件中。

前文已经讲述 2>&1 是将标准出错(2)重定向到标准输出(1),而这里的标准输出已经重定向到了out.txt文件,所以标准出错也会输出到out.txt文件中。最后一个&,是让该命令在后台执行

为什么2>&1要写在后面?

command > out.txt 2>&1

首先,command > out.txt将【标准输出】重定向到out.txt中,2>&1将标准错误重定向到【标准输出】,即重定向到out.txt中。最终结果就是标准输出和标准错误都重定向到out.txt中

那么还有一个问题,为什么要用/dev/null 2>&1,这条命令意思就是将标准输出和标准错误都重定向到/dev/null中,也就是将产生的信息都丢弃。

最后解释command > out.txt 2>file 和 command > out.txt 2>&1 有什么不同。

首先:command > out.txt 2>file 的意思是将command产生的所有stdout和stderr信息都送到out.txt中,out.txt会被打开两次,这样stdout和stderr信息会互相覆盖;

其次: command > out.txt 2>&1  是将stdout直接写入out.txt,stderr【继承】了stdout的管道后,再被送往out.txt,此时out.txt只被打开了一次。

linux命令补充的更多相关文章

  1. Linux命令补充及基础优化。

    1.用户部分 1.1 创建新用户 涉及命令 useradd [root@oldboyedu-50 ~]# useradd oldboy #添加用户 oldboy 1.2 设置密码 [root@oldb ...

  2. Linux命令(补充)

    1.查看已启动服务的端口: netstat -tulnp |grep 80 ss -tulnp|grep 80 2.查看全部已启动的端口:netstat -tulnp 3.查看当前目录:pwd 4.关 ...

  3. linux命令 - ln - 创建和删除软、硬链接

    linux命令 - ln - 创建和删除软.硬链接 在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号.文件属性保存在索引结点里,在访问文件 ...

  4. linux命令 - export - 设置环境变量

    linux命令 - export - 设置环境变量 功能说明:设置或显示环境变量. 语 法:export [-fnp][变量名称]=[变量设置值] 补充说明:在shell中执行程序时,shell会提供 ...

  5. 软件测试人员必备Linux命令(初、中、高级)

    有些技能可以事半功倍,有些命运掌握在我们手中.熟练的掌握和使用这些命令可以提高工作效率,并且结合这些命令对测试过程中遇到的问题进行一些初步的定位. 1 目录与文件操作1.1 ls(初级)使用权限:所有 ...

  6. Linux命令行与命令

    Linux命令行与命令   作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Linux的命令是很重要的工具,也往往是初学者最大的瓶 ...

  7. 运维工程师必会的109个Linux命令

    运维工程师必会的109个Linux命令 版本1.0 崔存新 更新于2009-12-26 目录 1 文件管理 6 1.1 basename 6 1.2 cat 6 1.3 cd 7 1.4 chgrp ...

  8. 简化LINUX的命令输入 简化linux命令

    在LINUX中,有很多常用的命令,常用的命令我们可以熟练的记忆,但是对于不经常使用的命令恐怕是需要翻阅手册了,但是我们可以简化这些命令的输入来达到简便记忆的效果. 这里以BSH为例: 编辑/etc/b ...

  9. 嵌入式开发应该掌握的一些Linux命令

    Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作.文件存取.目录操作.进程管理.文件权限设定等.所以,在Linux系统上工作离不开使用系统提供的命令.要想真正理解Linux系统, ...

  10. Linux命令总结(转载)

    转子:http://www.cnblogs.com/CGDeveloper/archive/2011/05/27/2060009.html 昨天看了一个教程,关于Linux命令的,本来以为当是复习随便 ...

随机推荐

  1. golang 不再使用原生的log, 使用固定的zap logger

    最主要一点, zap的可以给出详细的log信息, 形如 2023-02-10T09:24:55.707+0800 INFO v3web/main.go:196 [2023-02-10 09:24:55 ...

  2. apk签名之后安装失败

    Android Studio 3.0.1 很奇怪的一个现象,直接run的话可以成功,debug也可以,但是用签名打包之后,却安装失败,原来是打包的时候选错了.原来签名时,Signature Versi ...

  3. pgsql 查询结果和查询行数

    select count(*) over () as total, * from test

  4. CF652F 题解

    题意 传送门 在一个长度为 \(m\) 的圆环上有 \(n\) 只初始位置互不相同的蚂蚁,每只蚂蚁的速度都为 \(1\),初始方向为顺时针或逆时针:两只运动方向不同的蚂蚁相遇时会调转方向,问 \(t\ ...

  5. Ubuntu20.04上用tmux管理新进程

    sudo apt-get install tmux 安装tmux tmux new -s session_name 新开一个会话 tmux a -t session_name 查看指定会话 tmux ...

  6. vue v-for 循环中,下拉框 el select 设置初始值 v-model

    效果图: 2.解决思路是,v-model 赋值 单独创建一个数组,然后用于接收下拉框的值,然后提交的时候,将这个数组的值,放到提交的数组中. 3.参考: 解决v-for中遍历多个el-select时, ...

  7. ConcurrentHashMap在Java8中的变化

    增加红黑树这个存储结构 在Java8中,为什么要增加红黑树这种数据结构来进行存储,而不是全部使用链表来进行存储呢? 1.因为攻击者可以构造大量具有相同hashCode的内容,使其全部放在同一个列表中, ...

  8. Pytest Fixture(二)

    作用域 固件的作用是为了抽离出重复的工作和方便复用,为了更精细化控制固件(比如只想对数据库访问测试脚本使用自动连接关闭的固件),pytest 使用作用域来进行指定固件的使用范围. 在定义固件时,通过  ...

  9. ansiable学习

    ansiable是用来做什么的? Ansible是一个配置管理和配置工具,是运维开发人员的批操作利器. ansiable是怎样实现高效的? 在一台机器上配置好模板,通过ssh在其他机器上按照模板执行. ...

  10. 学校——DFS图的遍历

    学校实验 没什么多说的 就是实现一个图的遍历 由于学校已经输入的片段过于晦涩难懂 无法进行 在网上看了别人写的代码 提升了理解代码的一点能力 #include"string.h" ...