linux进程永久放后台运行
2024-10-19 05:24:56
我们使用ssh连接服务器之后,如果在执行某个命令需要时间特别长,当把终端断掉之后,命令就自动停止了一般我们在ssh客户端执行命令之后,默认他的父进程是ssh,所以把ssh终端关掉之后,子进程也就被自动kill掉了,解决办法就是更改这个命令进程的父进程为init,那样ssh退出去之后,命令依然会运行
默认情况下:
[root@localhost ~]# ping 127.0.0.1 &>/dev/null & [] [root@localhost ~]# pstree init─┬─VBoxService───*[{VBoxService}] ├─abrtd ├─acpid ├─atd ├─auditd───{auditd} ├─console-kit-dae───*[{console-kit-da}] ├─crond ├─dbus-daemon ├─dhclient ├─hald───hald-runner─┬─hald-addon-acpi │ └─hald-addon-inpu ├─master─┬─pickup │ └─qmgr ├─*[mingetty] ├─redis-server───*[{redis-server}] ├─rsyslogd───*[{rsyslogd}] ├─sshd───sshd───bash─┬─ping -------->从进程树中可以看出ping的父进程是ssh │ └─pstree └─udevd───udevd
解决办法:
.使用nohup 即 nohup commond & [root@localhost ~]# nohup ping 127.0.0.1 &>/dev/null & 查看进程: [root@localhost ~]# pstree init─┬─VBoxService───*[{VBoxService}] ├─abrtd ├─acpid ├─atd ├─auditd───{auditd} ├─console-kit-dae───*[{console-kit-da}] ├─crond ├─dbus-daemon ├─dhclient ├─hald───hald-runner─┬─hald-addon-acpi │ └─hald-addon-inpu ├─master─┬─pickup │ └─qmgr ├─*[mingetty] ├─ping ---------->ping的父进程已经是init了 ├─redis-server───*[{redis-server}] ├─rsyslogd───*[{rsyslogd}] ├─sshd───sshd───bash───pstree └─udevd───udevd .使用setsid setsid commond & [root@localhost ~]# setsid ping 127.0.0.1 &>/dev/null & 查看进程; [root@localhost ~]# pstree init─┬─VBoxService───*[{VBoxService}] ├─abrtd ├─acpid ├─atd ├─auditd───{auditd} ├─console-kit-dae───*[{console-kit-da}] ├─crond ├─dbus-daemon ├─dhclient ├─hald───hald-runner─┬─hald-addon-acpi │ └─hald-addon-inpu ├─master─┬─pickup │ └─qmgr ├─*[mingetty] ├─ping ---------->ping的父进程已经是init了 ├─redis-server───*[{redis-server}] ├─rsyslogd───*[{rsyslogd}] ├─sshd───sshd───bash───pstree └─udevd───udevd .使用(), (commond &) [root@localhost ~]# ( ping 127.0.0.1 &>/dev/null & ) 查看进程树: [root@localhost ~]# pstree init─┬─VBoxService───*[{VBoxService}] ├─abrtd ├─acpid ├─atd ├─auditd───{auditd} ├─console-kit-dae───*[{console-kit-da}] ├─crond ├─dbus-daemon ├─dhclient ├─hald───hald-runner─┬─hald-addon-acpi │ └─hald-addon-inpu ├─master─┬─pickup │ └─qmgr ├─*[mingetty] ├─ping ---------->ping的父进程已经是init了 ├─redis-server───*[{redis-server}] ├─rsyslogd───*[{rsyslogd}] ├─sshd───sshd───bash───pstree └─udevd───udevd
最新文章
- 物理Data Guard的日常维护
- Pyqt 中__init__(self,parent==None) parent理解
- js 实现各种排序
- phalcon: Profiling分析 profilter / Plugin结合,dispatcher调度控制器 监听sql执行日志
- 【web性能】 JS、CSS的合并、压缩、缓存管理
- 判断滑动方向UITableView
- Qt编程之数据流图(dataflow diagram)的编写
- 老李分享:loadrunne动态查询db2数据库
- Python原理 -- 深浅拷贝
- 分享一道JS前端闭包面试题
- CentOS7配置FTP服务器增强版~(零基础学会FTP配置)
- tomcat 8.0 进程没有全部杀死
- python连接mysql数据库封装
- SqlServer触发器实现表的级联插入、级联更新
- Mysql分库分表方案,如何分,怎样分?
- 记录一次apache错误:“child pid 29023 exit signal Segmentation fault (11)”
- kafka中配置细节
- My Emacs Writing Setup
- 「电脑应用」在mac上使用aria2
- PDO 指南