Answers:
甚至旧的bash都使用&来将进程发送到后台,但是也几乎没有其他方法..但基本的两种是:
1.)$~ your_command > outputfile_for_stdout &
# runs your command in background, giving you only PID so you can exit that process by `kill -9 PID_of_process`
# & goes at the end of row
2.)$~ your_command > outputfile_for_stdout
# this will run your program normally
# press Ctrl + Z then program will pause
$~ bg
# now your program is running in background
$~ fg
# now your program came back to foreground
3.)you can run terminal window under screen command so it will live until you either kill it or you reboot your machine
$~ screen
$~ run_all_your_commands
# Ctrl + A + D will then detach this screen
$~ screen -r will reattach it
其他一些有用的命令:
$~ jobs
# will show you all processes running right now, but without PID
$~ ps
# will show you all processes for actual terminal window
将其转换为守护程序(服务)
daemon --name="yourservicename" --output=log.txt sh yourscript.sh
$ servicename &
使用&
会使程序在后台运行,而不是阻塞外壳程序直到程序结束。
dixon@dixon-vaio:~$ nautilus & [1] 11835
。它返回进程ID,您将输入新的shell提示。还要检查以下内容:http : //unix.stackexchange.com/questions/3886/difference-between-nohup-disown-and。
在终端上,您还可以运行screen
或跟进命令&
。运行连续过程的简便方法。
&
我认为,在这种情况下仅使用后台流程是很少的。OP指出他的服务器登录到stdout,这样&
终端的输出将变得混乱不堪。另外,由于OP提到关闭终端,因此OP将无法再次前台处理该进程,并且所有日志输出都将丢失。至少,最好将其重定向到日志文件或坚持使用screen
设置-但是,请解释一下screen
OP 的基本知识 (分离/附加/等)