如何在用户退出linux系统时使一个进程仍然继续执行?

如何在用户退出linux系统时使一个进程仍然继续执行?,第1张

一般有以下几种方法:\x0d\x0a1)在输入命令的最前面加上nohup命令\x0d\x0a如nohup your_command &这样命令在你退出后仍然会在后台执行\x0d\x0a2)setsid命令\x0d\x0asetsid your_command该命令的结果是使你所运行的命令的父进程为init,所以只有关机该进程才会停止\x0d\x0a3)(your_command &)\x0d\x0a就是用括号将你的命令括起来,这样做也是使命令的父进程为init\x0d\x0a4)disown\x0d\x0a当你在命令行下输入your_command &后命令就在后台执行了,然后执行jobs命令,该命令会列出当前正在后台执行的命令。例如输入命令“top&”\x0d\x0a然后执行"jobs"\x0d\x0a输出结果是\x0d\x0a[1] + Suspended (tty output)top\x0d\x0a注意行开头方括号内的数字,该数字叫做jobspec,是给当前后台运行的job的编号。这是你只要在命令行下输入"disown -h 1" 后台运行的top命令就不会受到hangup信号的影响了。\x0d\x0a5)使用screen命令\x0d\x0a在\x0d\x0a命令行下输入screen命令就开启了一个screen进程,它就好像是一个全新的命令运行环境,在该环境中你可以像在正常的terminal下那样执行\x0d\x0a命令,但是这个screen是不受其父进程的hangup信号的影响的,既然screen不受其父进程影响,当你意外掉线或者退出系统时,在screen\x0d\x0a中仍在执行的命令仍然会继续执行。关于screen命令的使用方法你可以再去查阅相关资料。

结束当前正在运行的命令分为前台和后台命令:

1.终止在终端中正在运行的前台命令使用Ctrl+C快捷键就可以了!

2.终止后台运行的命令,

方法一:通过

jobs

查看job号,比如为1,执行命令

kill

%1

方法二:通过

ps

查看进程号,比如为num,执行命令

kill

num

Linux中终止一个正在运行运行的进程最常用的是kill命令,它是用进程PID作为参数来杀死进程。那如何获得指定进程的PID呢?用pidof命令啊。比如获取syslogd进程PID的命令是:pidof syslogd。知道了进程PID,就可以用kill命令终止它了:

kill -9 PID号码

或者kill -2 PID号码

-9参数是强制结束进程,而-2参数是相当于用键盘组合键Ctrl+C的方式正常结束进程,两种方式可以根据进程的运行情况来用。

终止进程还可以选择killall命令,顾名思义就是杀死所有以某个命令启动的所有进程(以杀死httpd命令启动的所有进程为例):

killall -9 httpd


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8441740.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-16
下一篇2023-04-16

发表评论

登录后才能评论

评论列表(0条)

    保存