Linux:使用nohup让进程在后台可靠运行
学习之余我最大的乐趣是找一部不错的电影慢慢品味,这也是我缓解压力的最好方式之一,由于我常去的字幕组网站需要签到才可以下载字幕,像这种娱乐网站谁有时间天天记得去签到呢,but作为一个准程序猿应该有更好的办法。果然我在github上逛了逛,便发现的一个不错的签到脚本,看来很多人都着和我一样的刚需呀,这里附上地址。
一动手很多问题便接踵而至,我打算把这个脚本运行在我的腾讯云服务器上面,并且定一个时间,让它每天在固定的时间run。可是我用的ssh 登录的远程Linux 服务器,如果直接按照那脚步的API执行,有一个致命的问题,我一旦在ssh终端执行了exit,所有子线程都会终止,脚本程序也是一样。
去google了一通后,发现有几个不错的方法可以解决这个问题,这里我只介绍我使用的那个方法。
解决方法:
nohup
首先看看nohup的帮助信息
NOHUP(1) User Commands NOHUP(1)
NAME
nohup - run a command immune to hangups, with output to a non-tty
SYNOPSIS
nohup COMMAND [ARG]...
nohup OPTION
DESCRIPTION
Run COMMAND, ignoring hangup signals.
--help display this help and exit
--version
output version information and exit
ps:英语不好的同学也要锻炼着多读英语文档,我以前英语差的可怜,高考就是败在英语上面。后来为了能看懂英语文档,同时应考大学英语四级,我花了一年时间啃英语,每天背两小时单词,看语法,做模拟试卷,到考试之前我做了大概50套题目,把近几年的考试题一集各种预测题都做了一遍。功夫不负有心人,昨天(2016年8月19日)我查四级成绩,过了可以报考六级的分数线,下半年我准备继续报英语六级。
回到正题:nohup 的使用只需在要处理的命令前加上 nohup 即可,一般在结尾加上"&"来将命令同时放入后台运行。
示例:
nohup ./qian-ni-mei-server.sh "larsenlouis" "12345678" "0100" &
查看后台进程:
ubuntu@VM-10-71-ubuntu:~$ ps -ef | grep "qian*"
root 8017 1 49 Aug19 ? 05:09:17 /bin/bash ./qian-ni-mei-s erver.sh username passward 2206
root 8401 1 49 Aug19 ? 05:04:06 /bin/bash ./qian-ni-mei-s erver.sh username passward 2206
我在终端执行exit后再次使用ssh登录,查看后台进程,输出和上面的一样。可见此方法可行。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· Blazor Hybrid适配到HarmonyOS系统
· 支付宝 IoT 设备入门宝典(下)设备经营篇
· 万字调研——AI生成内容检测
· 解决跨域问题的这6种方案,真香!
· 一套基于 Material Design 规范实现的 Blazor 和 Razor 通用组件库