如何在Unix Shell中的后台执行命令
How to execute command in background in unix shell?
执行命令并立即返回,直到命令完成后才阻止。
概念:背景执行,信号,信号处理程序,进程,异步执行 系统调用: sigset()
如何?
您可以将输出引导到单独的缓冲区,如果您不想垃圾邮件当前终端。
yourapp >> ~/tempOutput.txt &
如果要将其输出为"无处",则可以重定向到null
yourapp >> /dev/null &
运行命令:
sudo nohup {your command} &
使用nohup
检查运行命令进程ID ps -ef | grep nohup
并在需要时杀死命令
kill {process id}
您可以通过附加到命令上的and和如下所示。
$ ./my-script.sh &
您可以使用&可以在后台执行命令(或shell脚本),但是,如果您从会话中注销,则该命令将被杀死。为了避免这种情况,您应该使用如下所示的NOHUP。
示例
$nohup ./my-shell-script.sh &
或
$nohup ps -aux &
使用NOHUP在后台执行命令后,即使您注销后,该命令也会被执行。但是,您无法再次连接到同一会话,以确切查看屏幕上发生的事情。为此,您应该使用屏幕命令。
除此之外,我建议使用tmux,您可以随时创建会话并重新播放会话。
$tmux new -s mysessionname
有关TMUX的更多信息
相关文章:
- 在执行其他功能的同时播放动画(LED矩阵和Arduino/ESP8266)
- C++,系统无法执行指定的程序
- 使用C++中的模板和运算符重载执行矩阵运算
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 执行函数时导致崩溃的变量
- 无论条件是否为true,if总是在c++中执行
- 当函数模板参数是具有默认参数的类模板时,函数模板参数的推导如何执行
- 在C++中对T*类型执行std::move的意外行为
- 使用QProcess执行命令,并将结果存储在QStringList中
- 如何在没有信号的情况下从C++执行QML插槽
- 如何确认我的constexpr表达式实际上已经在编译时执行
- C++17中的并行执行策略
- QML按钮点击功能执行顺序
- 程序在执行程序的其余部分之前退出
- 为什么catch中的代码没有被执行
- 如何使用相同的可执行文件在后台运行 3 个 QProcess
- 如何在执行异步后台任务的C++中构造对象
- 如何在Unix Shell中的后台执行命令
- 在执行后台任务时与Objective-C中的GUI交互
- 使用system()执行后台进程