当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 14 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 小技巧:让linux程序在后台运行 &
帖子发表于 : 2012-11-10 13:06 

注册: 2012-06-12 12:04
帖子: 297
送出感谢: 0 次
接收感谢: 3
链接我删除了,原出处明明是del的博客

有些时候,我们需要在终端启动一个程序,并使之运行——但是如果关闭终端,那么这个程序也就随着关闭了。那么有没有什么方法在关闭终端后,让已经从这个终端启动的程序继续运行呢?
前置知识:
xterm,console,tty,pts,pty的区别
shell是直接和内核进行通信的东西
xterm是一个软件概念,可以通过这个程序连接到console从而控制主机,可以理解为cli形式的终端模拟器,而gnome-terminal,konsole就是gui形式的终端模拟器
console是主机的控制台,是一个物理概念。
tty、pty、pts都是终端,是硬件或者设备概念。
tty是所有终端设备的总称
pty是其中一类,伪终端,或者叫虚拟终端
“&” 命令行结尾法:
在Unix/Linux下如果想让程序独立终端运行,一般都是使用 & 在命令结尾来让程序自动运行。(命令后可以不追加空格)

打开gnome-terminal,执行如下命令:

[email protected]:~$ totem &
[1] 8510
[email protected]:~$
有几点需要注意:

已经启动的程序依然attach于当前pts,只有当前终端模拟器关闭(使用exit命令退出),进程自动被tty继承。
[email protected]:~$ ps -e | grep totem
//程序已被以totem & 形式启动,当前附在pts0上
8819 pts/0 00:00:00 totem
[email protected]:~$ ps -e | grep totem
//pts0的模拟终端被exit命令关闭,totem自动附在tty
8819 ? 00:00:00 totem
[email protected]:~$
具有debug输出的进程,需要按enter键进行中断当前debug输出。但是如果程序持续进行printf,你将无法输入任何命令。
[email protected]:~$ vlc &
[1] 8850
[email protected]:~$ VLC media player 1.0.6 Goldeneye
[0x8b998b0] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
//enter pressed
[email protected]:~$ //show a clean terminal now
** (:8850): CRITICAL **: giop_thread_request_push: assertion `tdata != NULL' failed
//仍然在输出数据……
//关闭程序
[1]+ Done vlc
[email protected]:~$
你无法记录程序的debug输出结果。
只有当虚拟终端是 $ 或者 # 时候,才可以关闭此终端,否则可能导致已经启动的进程被关闭(按enter——如果程序持续输出信息而没有出现 $ 或 #)
使用nohup命令:
nohup描述:Run COMMAND, ignoring hangup signals.(忽略任何中断/挂起信号,使命令继续执行)

但是当你尝试使用命令:

1
nohup command
时候却会遇到不大不小的麻烦……

[email protected]:~$ nohup vlc
nohup: ignoring input and appending output to `nohup.out'
是的,虽然它自动把debug信息记录到nohup.out文件,但是你却无法使用这个终端进行任何操作。

所以你需要和第一个方法混用,即

nohup command {option} &
混用后,它会自动把你执行的命令输出结果记录到权限为-rw——-,名为nohup.out的文件中。

但是你仍然需要

[email protected]:~$ nohup vlc &
[1] 9045
[email protected]:~$ nohup: ignoring input and appending output to `nohup.out'
//在这里按一下回车或以ctrl+c以
//show a clean terminal
[email protected]:~$
与使用 “&” 性质相同,当前启动程序的终端如果没有被关闭,已经启动的程序附在pst上;如果终端被关闭,则自动附在tty。

如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out。默认状态下,nohup默认输出到nohup.out文件,你也可以利用重定向来指定输出文件:

nohup command {option} > myout.file 2>&1 &
只有当虚拟终端是 $ 或者 # 时候,才可以关闭此终端,否则可能导致已经启动的进程被关闭(按enter——如果程序持续输出信息而没有出现 $ 或 #)

其他相关命令:
jobs:查看当前有多少在后台运行的命令
fg:将后台中的命令调至前台继续运行。如果后台中有多个命令,可以用 fg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)
bg:将一个在后台暂停的命令,变成继续执行。如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)

杀死进程
杀死已经启动的程序和普通方式一样:

pkill -9 name
killall name
kill pid

命令应用:
linux服务器挂机下载;启动相关服务;linux服务器启动进程(尤其是ssh登录)

我就曾经用
1
nohup aria2c -i downloadlist -m 0 -j 1 &
从jsharer极享下载了不少动漫。


_________________
PC:amd 5400+ / 2GB DDR2 /Seagate 1T+3T(320GB) /ATI HD6750/CENTOS 6.3

HASEE:K450-I5 D1/
CPU:i5 3210M
内存:4GB DDR3 1333MHz
硬盘:500GB SATA
显卡:NVIDIA GeForce GT 640M
系统:win 7 & CENTOS 6.3


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 小技巧:让linux程序在后台运行 &
帖子发表于 : 2012-11-10 13:12 

注册: 2007-08-02 20:29
帖子: 21303
系统: 窓辺とうこ
送出感谢: 0 次
接收感谢: 22
引用:


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 小技巧:让linux程序在后台运行 &
帖子发表于 : 2012-11-10 13:14 

注册: 2010-07-19 21:41
帖子: 22323
系统: OS X
送出感谢: 8
接收感谢: 42
慧慧抢先了…


_________________
NO DO NO DIE
http://a/%%30%30


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 小技巧:让linux程序在后台运行 &
帖子发表于 : 2012-11-10 13:34 
头像

注册: 2010-06-16 1:05
帖子: 14668
地址: Tencent
系统: Mac OS X
送出感谢: 1
接收感谢: 153
这些人抄文章都不说文章的出处,狗娘养的


_________________
twitter求fo:http://twitter.com/maplebeats
博客求踩:http://maplebeats.com


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 小技巧:让linux程序在后台运行 &
帖子发表于 : 2012-11-10 13:41 

注册: 2007-08-02 20:29
帖子: 21303
系统: 窓辺とうこ
送出感谢: 0 次
接收感谢: 22
不准侮辱狗


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 小技巧:让linux程序在后台运行 &
帖子发表于 : 2012-11-10 17:14 
头像

注册: 2008-08-13 8:48
帖子: 26391
地址: 东海硇州,一双管钥。
系统: Fundu i64
送出感谢: 50
接收感谢: 344
楼上一群××,不是说了是来自del的博客吗?当然,这种删除来源地址的行为鄙人也非常反感,不管了,楼上一群都打死算了。 :em01 :em01 :em01


_________________
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 小技巧:让linux程序在后台运行 &
帖子发表于 : 2012-11-10 17:19 

注册: 2010-07-19 21:41
帖子: 22323
系统: OS X
送出感谢: 8
接收感谢: 42
轮子没看到是饭团改的帖么 :em20


_________________
NO DO NO DIE
http://a/%%30%30


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 小技巧:让linux程序在后台运行 &
帖子发表于 : 2012-11-10 17:24 

注册: 2010-07-19 21:41
帖子: 22323
系统: OS X
送出感谢: 8
接收感谢: 42
代表饭团&慧慧歧视轮子一下 :em01 :em04


_________________
NO DO NO DIE
http://a/%%30%30


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 小技巧:让linux程序在后台运行 &
帖子发表于 : 2012-11-10 17:28 
头像

注册: 2008-08-13 8:48
帖子: 26391
地址: 东海硇州,一双管钥。
系统: Fundu i64
送出感谢: 50
接收感谢: 344
楼上站得真高,小心点,别摔了。 :em01 :em01 :em01


_________________
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关


页首
 用户资料  
 
10 楼 
 文章标题 : Re: 小技巧:让linux程序在后台运行 &
帖子发表于 : 2012-11-10 17:29 
头像

注册: 2007-12-14 13:40
帖子: 49887
地址: 志虚国乌由市
系统: Winbuntu
送出感谢: 29
接收感谢: 414
jtshs256 写道:
代表饭团&慧慧歧视轮子一下 :em01 :em04


_________________
冷轩信

渠月 · QY

本人只会灌水,不负责回答问题

无聊可以点一下→ http://u.nu/ubuntu

安装flash 还是要用
代码:
sudo apt install adobe-flashplugin


页首
 用户资料  
 
11 楼 
 文章标题 : Re: 小技巧:让linux程序在后台运行 &
帖子发表于 : 2012-11-10 17:31 
头像

注册: 2008-08-13 8:48
帖子: 26391
地址: 东海硇州,一双管钥。
系统: Fundu i64
送出感谢: 50
接收感谢: 344
诸位别站太高了,上面风大,而且现在这住院费高。 :em01 :em01 :em01


_________________
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关


页首
 用户资料  
 
12 楼 
 文章标题 : Re: 小技巧:让linux程序在后台运行 &
帖子发表于 : 2012-11-10 18:33 

注册: 2007-08-02 20:29
帖子: 21303
系统: 窓辺とうこ
送出感谢: 0 次
接收感谢: 22
原來輪子是死不認錯型的


页首
 用户资料  
 
13 楼 
 文章标题 : Re: 小技巧:让linux程序在后台运行 &
帖子发表于 : 2012-11-10 18:36 
头像

注册: 2008-08-13 8:48
帖子: 26391
地址: 东海硇州,一双管钥。
系统: Fundu i64
送出感谢: 50
接收感谢: 344
既然楼上都说了,那我认个错吧,不好意思,误会诸位了。 :em03 :em03 :em03


_________________
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关


页首
 用户资料  
 
14 楼 
 文章标题 : Re: 小技巧:让linux程序在后台运行 &
帖子发表于 : 2012-11-10 18:43 

注册: 2012-06-12 12:04
帖子: 297
送出感谢: 0 次
接收感谢: 3
我好伤心,以为是好多人来讨论这个方法的,没想到是一群灌水的,
我是忘了添加地址,下面两个也是今天发的,都填了地址

viewtopic.php?f=48&t=392700

viewtopic.php?f=48&t=392697


_________________
PC:amd 5400+ / 2GB DDR2 /Seagate 1T+3T(320GB) /ATI HD6750/CENTOS 6.3

HASEE:K450-I5 D1/
CPU:i5 3210M
内存:4GB DDR3 1333MHz
硬盘:500GB SATA
显卡:NVIDIA GeForce GT 640M
系统:win 7 & CENTOS 6.3


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 14 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译