码迷,mamicode.com
首页 > 系统相关 > 详细

linux进程永久放后台运行

时间:2018-04-07 19:57:43      阅读:278      评论:0      收藏:0      [点我收藏+]

标签:服务器   abr   bsp   ssh   后台运行   客户端   cron   box   acpi   

我们使用ssh连接服务器之后,如果在执行某个命令需要时间特别长,当把终端断掉之后,命令就自动停止了一般我们在ssh客户端执行命令之后,默认他的父进程是ssh,所以把ssh终端关掉之后,子进程也就被自动kill掉了,解决办法就是更改这个命令进程的父进程为init,那样ssh退出去之后,命令依然会运行

默认情况下:

[root@localhost ~]# ping 127.0.0.1 &>/dev/null  &

[1] 1782

[root@localhost ~]# pstree

init─┬─VBoxService───7*[{VBoxService}]

     ├─abrtd

     ├─acpid

     ├─atd

     ├─auditd───{auditd}

     ├─console-kit-dae───63*[{console-kit-da}]

     ├─crond

     ├─dbus-daemon

     ├─dhclient

     ├─hald───hald-runner─┬─hald-addon-acpi

     │                    └─hald-addon-inpu

     ├─master─┬─pickup

     │        └─qmgr

     ├─6*[mingetty]

     ├─redis-server───2*[{redis-server}]

     ├─rsyslogd───3*[{rsyslogd}]

     ├─sshd───sshd───bash─┬─ping  -------->从进程树中可以看出ping的父进程是ssh

     │                    └─pstree

     └─udevd───udevd

解决办法:

1.使用nohup   即  nohup  commond &

[root@localhost ~]# nohup ping 127.0.0.1 &>/dev/null  &

查看进程:

[root@localhost ~]# pstree 

init─┬─VBoxService───7*[{VBoxService}]

     ├─abrtd

     ├─acpid

     ├─atd

     ├─auditd───{auditd}

     ├─console-kit-dae───63*[{console-kit-da}]

     ├─crond

     ├─dbus-daemon

     ├─dhclient

     ├─hald───hald-runner─┬─hald-addon-acpi

     │                    └─hald-addon-inpu

     ├─master─┬─pickup

     │        └─qmgr

     ├─6*[mingetty]

     ├─ping           ---------->ping的父进程已经是init了

     ├─redis-server───2*[{redis-server}]

     ├─rsyslogd───3*[{rsyslogd}]

     ├─sshd───sshd───bash───pstree

     └─udevd───udevd



2.使用setsid  setsid  commond &  

[root@localhost ~]# setsid ping 127.0.0.1 &>/dev/null &

查看进程;

[root@localhost ~]# pstree

init─┬─VBoxService───7*[{VBoxService}]

     ├─abrtd

     ├─acpid

     ├─atd

     ├─auditd───{auditd}

     ├─console-kit-dae───63*[{console-kit-da}]

     ├─crond

     ├─dbus-daemon

     ├─dhclient

     ├─hald───hald-runner─┬─hald-addon-acpi

     │                    └─hald-addon-inpu

     ├─master─┬─pickup

     │        └─qmgr

     ├─6*[mingetty]

     ├─ping               ---------->ping的父进程已经是init了

     ├─redis-server───2*[{redis-server}]

     ├─rsyslogd───3*[{rsyslogd}]

     ├─sshd───sshd───bash───pstree

     └─udevd───udevd




3.使用(),  (commond &)

[root@localhost ~]# ( ping 127.0.0.1 &>/dev/null & ) 

查看进程树:

[root@localhost ~]# pstree

init─┬─VBoxService───7*[{VBoxService}]

     ├─abrtd

     ├─acpid

     ├─atd

     ├─auditd───{auditd}

     ├─console-kit-dae───63*[{console-kit-da}]

     ├─crond

     ├─dbus-daemon

     ├─dhclient

     ├─hald───hald-runner─┬─hald-addon-acpi

     │                    └─hald-addon-inpu

     ├─master─┬─pickup

     │        └─qmgr

     ├─6*[mingetty]

     ├─ping              ---------->ping的父进程已经是init了

     ├─redis-server───2*[{redis-server}]

     ├─rsyslogd───3*[{rsyslogd}]

     ├─sshd───sshd───bash───pstree

     └─udevd───udevd

 

linux进程永久放后台运行

标签:服务器   abr   bsp   ssh   后台运行   客户端   cron   box   acpi   

原文地址:https://www.cnblogs.com/pycode/p/8734296.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!