使用nohup启动服务


在使用云服务时,运行程序时可能会遇到因为网络波动等原因造成本地与服务器断连,从而导致正在运行的程序被意外中断。针对这种问题可以使用 nohup命令进行避免。

1、nohup 命令的用法解释

Linux 系统中的 nohup 命令用于让一个进程在退出之后依然运行,并将输出保存到指定的文件中。它通常用于后台运行和长时间任务处理。

2、应用场景

(1) 长时间任务: 在计算重要数据或执行转换等任务时,确保任务不会因为终端关闭而中断。
(2) 后台服务: 启动服务程序保持运行,例如 Web 服务器。
(3) 实验和调试: 在调试测试过程中,线下格式实验不影响环境。
(4)终端容量不足: 在系统目录不能充分分配前,沿用 mv 文件路径结合传入

3、nohup 命令基础

命令格式:

``bash
nohup <命令> [参数] &
`

* nohup 表示不接收 SIGHUP (挂断)信号,保证进程在退出终端后依然运行。
*
& 让进程在后台运行。
* 输出默认保存在“nohup.out”文件中,如有需要,可以通过重定向实现。

---

4、nohup 命令的用法

(1)基础用法

在后台运行一个命令:

`bash
nohup python script.py &
`

* 将使用python运行 script.py 文件,并保持进程在终端断连后依然运行。
* 默认输出保存在
nohup.out 文件中。

(2) 重定向输出

指定输出文件:

`bash
nohup python script.py > output.log 2>&1 &
`

* > output.log 指定将标准输出与错误输出保存在 output.log 中。
*
2>&1 将错误输出重定向到标准输出。

(3) 带参数的命令

含有参数的命令:

`bash
nohup java -jar app.jar --config config.yml &
`

* 这个命令运行 Java 应用,并使用指定的配置文件。

(4) 查看运行进程

① 通过 lsof命令查看运行进程:

`
lsof -i:<端口号>
`

可以查询具体端口是否已经被占用,比如 8080

1735790991431_image.png

② 通过 ps 命令查看运行进程:

`bash
ps aux | grep script.py
`

* ps aux 列出所有运行的进程。
*
grep script.py 过滤出和 script.py 相关的进程。

1735791000165_image.png

(5) 停止进程

通过 kill 命令停止运行进程:

`bash
kill -9 <PID>
`

* <PID> 是进程的识别号,可通过 pslsof`查看。