shell 脚本中后台执行命令 &
最近遇到一个问题,
执行脚本,脚本调用 一个命令,命令(deamon)是一个守护进程,为了调试,取消了守护进程模式。导致命令后边的其他命令(echo "456")都无法执行。
deamon -d 是以守护进程模式启动;deamon -x 是以非守护进程模式启动(监控进程,死循环),stdout和stderr 关联到 控制终端。
脚本是 a.sh
#!/bin/sh
echo “123“
/usr/local/bin/deamon -d & >/dev/null 2>&1
echo “456”
执行脚本,输出如下:
[root@localhost]#./a.sh
[root@localhost]#123
[root@localhost]#456
[root@localhost]#
符合我的要求,deamon 在后台运行。deamon后面的命令得到运行。
现在我打算把deamon 换成 调试模式 ,deamon -x,输出重定向到 /tmp/debug.info文件
修改a.sh 如下:
#!/bin/sh
echo “123“
/usr/local/bin/deamon -x & >/tmp/debug.info 2>&1
echo “456”
执行脚本,输出如下:
[root@localhost]#./a.sh
[root@localhost]#123
[root@localhost]#deamon的输出信息
这并不是我想要的,deamon的输出没重定向到debug.info文件,并且deamon后边的命令没执行。
经过修改a.sh如下,实现了我的目的。
#!/bin/sh
echo “123“
/usr/local/bin/deamon -x >/tmp/debug.info 2>&1 &
echo “456”
执行后结果是
[root@localhost]#./a.sh
[root@localhost]#123
[root@localhost]#456
[root@localhost]#
deamon的输出信息重定向到/tmp/debug.info文件中。
总结如下:
1.后台符号 &一定要放在整个命令最后。
2.重定向>,>>一定紧跟着重定向文件
3.如果是 文件输出 1 stdout,2 stderr 要重定向到别的文件,也是紧跟>,>>符号。
4.如果想让stderr也跟 stdout一样输出到文件,使用
/usr/local/bin/cmd >file 2>&1
同 /usr/local/bin/cmd 1>file 2>&1 是一样的意思。
shell 脚本中后台执行命令 &的更多相关文章
- shell脚本中解决SCP命令需要输入密码的问题
使用密钥文件. 这里假设主机A(192.168.100.3)用来获到主机B(192.168.100.4)的文件. 在主机A上执行如下命令来生成配对密钥: ssh-keygen -t r ...
- shell脚本 在后台执行de 命令 >> 文件 2>&1 将标准输出与错误输出共同写入到文件中(追加到原有内容的后面)
命令 >> 文件 2>&1或命令 &>> 文件 将标准输出与错误输出共同写入到文件中(追加到原有内容的后面) # ll >>aaa 2> ...
- Shell脚本中的交互式命令处理
先贴代码: DATE=`date -d -1hour +%T` fileName=erver_`date -d now +%Y-%m-%d-%H%M%S`.txt cp /home/BLload_ba ...
- Linux中使用crontab命令定时执行shell脚本或其他Linux命令
使用crontab你可以在指定的时间执行一个shell脚本或者一系列Linux命令.例如系统管理员安排一个备份任务使其每天都运行 如何往 cron 中添加一个作业? # crontab –e0 5 * ...
- shell脚本中判断上一个命令是否执行成功
shell脚本中判断上一个命令是否执行成功 shell中使用符号“$?”来显示上一条命令执行的返回值,如果为0则代表执行成功,其他表示失败.结合if-else语句实现判断上一个命令是否执行成功. 示例 ...
- Shell脚本中实现切换用户并执行命令操作【转】
第一种方法 cat test.sh #!/bin/bashsu - test <<EOFpwd;exit;EOF 执行结果图: 第二种方法 当然也可以用下面的命令来执行 复制代码代码如下: ...
- Linux执行shell脚本方式及区别&命令后台运行
Linux执行shell脚本方式及区别&命令后台运行 http://blog.csdn.net/heqiyu34/article/details/19089951/
- shell脚本介绍、shell脚本结构和执行、date命令用法、shell脚本中的变量
7月11日任务 20.1 shell脚本介绍20.2 shell脚本结构和执行20.3 date命令用法20.4 shell脚本中的变量 20.1 shell脚本介绍 1.shell脚本语言是linu ...
- bash命令检测Shell脚本中的语法错误和查看详细执行过程
(1).bash命令检测Shell脚本中的语法错误 bash -v [脚本] [root@youxi1 ~]# vim a.sh #/bin/bash sum=$[$1+$2] echoo $sum ...
随机推荐
- (转)linux shell 数字计算详解
代码中免不了要进行各种数据计算.抛开科学计算不提,普通的计算占地,百分比,同比,环比等需求就很常见.linux shell中进行数字计算,主要有如下几种方式: 1.bc bc是比较常用的linux计算 ...
- springboot和quartz整合分布式多节点
虽然单个Quartz实例能给予我们很好的任务job调度能力,但它不能满足典型的企业需求,如可伸缩性.高可靠性满足.假如你需要故障转移的能力并能运行日益增多的 Job,Quartz集群势必成为你应用的一 ...
- SSL评测
首先在这个网站上测试一下自己的服务器究竟处于什么水平 https://www.ssllabs.com/ssltest/
- MySQL按照月进行统计
MySQL按照月进行统计 今天需要后台提供一个按月统计的API.所以查了一下SQL语句的实现方法. 按月统计SQL select date_format(createtime, '%Y-%m') as ...
- redis虚拟内存---官方文档
http://redis.io/topics/internals-vm Virtual Memory technical specification This document details the ...
- 解决IntelliJ IDEA导入本地项目不能切换github容器的问题
问题场景: 复制本地一个github项目到IDEA中,本地项目容器是A,新项目的容器仍然是A. 解决方法: 1.打开项目在资源管理器中的位置,隐藏的文件项目查看√上,删掉.git文件夹. 2. 3.选 ...
- jQuery 的动画效果图片----隐藏打开方法
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- bzoj 2167: 公交车站
Description Z市交通不发达,所有公交路线覆盖的边竟然一个环也不包含,甚至该市的公交路线有可能会分为几个互不连通的块,这可真是不可思议.有一天,你突然听到一条消息,说你的M个同学被困在了Z市 ...
- [转]glyphicons-halflings-regular字体 图标
本文转自:http://www.ijquery.cn/?p=377 一.介绍 采用这种字体,我们可以避免网站制作中采用好多图片,一方面解决了浏览器的兼容性问题.另一方面,这些字体都是矢量字体,我们只要 ...
- MVVMLight - IOC Containers and MVVM
在面向对象编程的早期,开发者要面对在应用程序或者类库中创建或检索类的实例的问题.针对这个问题有很多的解决方案.在过去几年中,依赖注入(DI)和控制反转(IoC)在开发者中很流行,并且取代了老的方案,比 ...