Linux 用户退出后,用户程序后台运行的方法介绍
一般有以下几种方法:1)在输入命令的最前面加上nohup命令如nohup your_command & 这样命令在你退出后仍然会在后台执行2)setsid命令setsid your_command该命令的结果是使你所运行的命令的父进程为init,所以只有关机该进程才会停止3)(your_command &)就是用括号将你的命令括起来,这样做也是使命令的父进程为init4)disow
·
输入命令:
nohup mono hello.exe >/dev/null &
绿色区域表示启动进程的命令
nohup介绍
当使用shell时,在命令前面加上nohup可以阻止当用户登出或退出shell后的命令自动终止nohup表示“no hangup”.
hangup(HUP)信号通常会被发送给进程以通知它用户已经退出了。但是nohup会将这个信号给拦截,从而实现进程继续运行。
如果标准输入是终端,nohup会将其重定向到/dev/null。所以终端的输入在使用nohup时是不被接受的
如果标准输出是终端,nohup会将其重定向到nohup.out,如果当前文件夹权限不够,会将其重定向到/home/nohup.out
如果标准错误是终端,nohup会将其重定向到标准输出,标准输出在之前被重定向到nohup.out了,所以错误也会写入nohup.out中
如果要自定义接收的输出文件,可以使用文件重定向 nohup command > filename
nohup mycommand
运行此命令时,将不会接受用户输入。所有的输出包括错误信息都会被写入到当前目录或home目录下的nohup.out文件下,如果mycommand运行后退出用户或者关闭终端,mycommand命令不会停止
nohup mycommand &
和前面的命令一样,但是带有&的命令会立刻返回到shell。命令结尾的&符号指示bash在后台运行。后台运行的命令可以通过内建的fg命令转换为前台
当使用&的时候,会显示job ID和进程ID。如[1] 9935
可以通过使用进程ID提前终止进程。比如使用下列指令kill -9 9935
注意:
一般来讲启动进程后再使用kill指令报错,一般都是进程没运行起来,可以通过ps aux | grep 进程名 来查找进程是否正常运行并在nohup.out中查找相关日志信息
更多推荐
已为社区贡献3条内容
所有评论(0)