linux 让你的进程后台运行
来源:互联网 发布:云计算及大数据技术 编辑:程序博客网 时间:2024/05/16 10:39
最近在学习相关内容,觉得有用就转载一下。
fg、bg、jobs、&、ctrl + z都是跟系统任务有关的,虽然现在基本上不怎么需要用到这些命令,但学会了也是很实用的
一。& 最经常被用到
这个用在一个命令的最后,可以把这个命令放到后台执行
二。ctrl + z
可以将一个正在前台执行的命令放到后台,并且暂停
三。jobs
查看当前有多少在后台运行的命令
四。fg
将后台中的命令调至前台继续运行
如果后台中有多个命令,可以用 fg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)
五。bg
将一个在后台暂停的命令,变成继续执行
如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)
当前正在运行的程序用 CTRL+z来挂入后台,用fg 来唤醒.可以进行多进程切换.
Unix/Linux下一般比如想让某个程序在后台运行,很多都是使用 & 在程序结尾来让程序自动运行。比如我们要运行mysql在后台:
/usr/local/mysql/bin/mysqld_safe --user=mysql &
但是加入我们很多程序并不象mysqld一样做成守护进程,可能我们的程序只是普通程序而已,一般这种程序使用 & 结尾,
无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。
如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。
如果没有文件能创建或打开以用于追加,那么 Command 参数指定的命令不可调用。
如果标准错误是一个终端,那么把指定的命令写给标准错误的所有输出作为标准输出重定向到相同的文件描述符。
退出状态
该命令返回下列出口值:
126 可以查找但不能调用 Command 参数指定的命令。
127 nohup 命令发生错误或不能查找由 Command 参数指定的命令。
否则,nohup 命令的退出状态是 Command 参数指定命令的退出状态。
示例
要运行注销后后台中的命令,请输入:
$ nohup find / -print &
输入该命令后,显示如下:
670$ 输出发送到 nohup.out
进程 ID 号更改为 & (表示“and”的符号)启动的后台进程的 ID 号。
消息 输出发送到 nohup.out 通知您来自 find / -print 命令的输出在 nohup.out 文件中。
查看这些消息后可以注销,即使 find 命令仍在运行。
要运行后台中的命令并且把标准输出重定向到一个不同的文件,请输入:
$ nohup find / -print >filenames &
本例运行 find / -print 命令并且把输出存储到命名为 filenames 的文件中。现在只显示进程 ID 和提示:
677$
因为 nohup 命令需要片刻时间来启动 Command 参数指定的命令,在注销前请等待。
如果太快注销,Command 参数指定的命令可能根本没运行。一旦 Command 参数指定的命令启动,注销就不会对其产生影响。
要运行不止一条命令,请使用 shell 过程。例如,如果写 shell 过程:
neqn math1 | nroff > fmath1
且命名它为 nnfmath1 文件,那么可以为 nnfmath1 文件中所有命令运行 nohup 命令,命令为:
nohup sh nnfmath1
如果给 nnfmath1 文件分配执行许可权,那么可以通过发出如下命令得到相同的结果:
nohup nnfmath1
要在后台中运行 nnfmath1 文件,请输入:
nohup nnfmath1 &
要在 Korn shell 中运行 nnfmath1 文件,请输入:
nohup ksh nnfmath1
如果使用nohup命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件:
暂时中断会话
C-a w 显示所有窗口列表
C-a C-a 切换到之前显示的窗口
C-a c 创建一个新的运行shell的窗口并切换到该窗口
C-a n 切换到下一个窗口
C-a p 切换到前一个窗口(与C-a n相对)
C-a 0..9 切换到窗口0..9
C-a a 发送 C-a到当前窗口
C-a d 暂时断开screen会话
C-a k 杀掉当前窗口
C-a [ 进入拷贝/回滚模式
Screen 常用选项
自定义命令字符和转义字符
-d|-D [pid.tty.host] 不开启新的screen会话,而是断开其他正在运行的screen会话
-h num 指定历史回滚缓冲区大小为num行
-list|-ls 列出现有screen会话,格式为pid.tty.host
-d -m 启动一个开始就处于断开模式的会话
-r sessionowner/ [pid.tty.host] 重新连接一个断开的会话。多用户模式下连接到其他用户screen会话需要指定sessionowner,需要setuid-root权限
-S sessionname 创建screen会话时为会话指定一个名字
-v 显示screen版本信息
-wipe [match] 同-list,但删掉那些无法连接的会话
管理你的远程会话
putty
telnet
There is a screen on:
4083.down_video (Detached)
1 Socket in /var/run/screen/S-root.
可以看到我们的程序仍在运行,中间未曾停止,而且此时我们又可以控制它了。
那么如何中断一个 screen session?
看例子:
There is a screen on:
4083.down_video (Attached)
1 Socket in /var/run/screen/S-root.
这时我想使用此session
There is a screen on:
4083.down_video (Attached)
There is no screen to be resumed matching down_video.
这时只能用 -d 参数来强制中断它
[root@dev ~]# screen -d down_video
[4083.down_video detached.]
再用 -r 取回 screen就成功了
注意:原来的被我们中断的连接会显示 :
[root@dev ~]# screen -r down_video
[remote detached]
- linux 让你的进程后台运行
- linux 让你的进程后台运行
- linux 让你的进程后台运行
- linux 让你的进程后台运行
- linux 让你的进程后台运行
- linux 让你的进程后台运行
- linux 让你的进程后台运行
- linux 让进程后台运行
- linux让进程后台运行
- Linux 让进程后台运行的几种方法
- Linux 让进程后台运行的几种方法
- 如何让进程在Linux后台运行
- 让进程在Linux后台运行
- 如何让进程在Linux后台运行
- linux系统让进程后台运行
- Linux中如何让进程(或正在运行的程序)到后台运行?
- Linux中如何让进程(或正在运行的程序)到后台运行?
- Linux中如何让进程(或正在运行的程序)到后台运行?
- Android debug-you cannot combine custom titles with other title features
- mp4 box 信息3
- Hadoop中HDFS文件系统NameNode的Federation设计文档(HDFS-1052:Hdfs scalability with multiple namenodes)
- hasSystemFeature()判断系统是否有特定的模块功能
- 排序算法---直接插入
- linux 让你的进程后台运行
- 基于CSS3的WEBAPP横向滑动模式演化
- 基于vlfeat的HOG特征提取c++代码实现
- Android ListView异步加载图片乱序问题,原因分析及解决方案
- 浅谈Makefile在项目代码组织中的使用
- uva10250 The Other Two Trees
- javascript浮动广告的实现
- Bug优先级与严重程度的划分
- Linux 技巧:让进程在后台可靠运行的几种方法