【linux】nohup启动服务
nohup 是一个命令行工具,用于在用户注销后继续运行命令。它的名字来源于 “no hang up”(不断开连接)。使用 nohup 启动服务意味着即使你关闭终端或注销用户,服务仍然会继续运行。
为什么需要 nohup
在 Linux 或 Unix 系统中,当你在终端中启动一个后台进程时,如果关闭终端或注销用户,该进程通常会被终止。nohup 命令可以防止这种情况发生,确保进程在后台持续运行。
使用方法
假设你的服务程序名为 service,你可以使用以下命令启动它:
nohup ./service &
nohup:告诉系统不要在终端关闭时挂起进程。./service:启动你的服务程序。&:将进程放到后台运行。
输出重定向
默认情况下,nohup 会将标准输出和标准错误重定向到一个名为 nohup.out 的文件中。你可以指定其他文件来存储输出:
nohup ./service > output.log 2>&1 &
>:将标准输出重定向到output.log文件。2>&1:将标准错误也重定向到标准输出(即output.log)。&:将进程放到后台运行。
示例
假设你有一个 C++ 服务程序 service,你可以这样启动它:
nohup ./service > service.log 2>&1 &
这会启动服务,并将所有输出(包括错误信息)重定向到 service.log 文件中。
查看服务状态
你可以使用以下命令查看服务是否正在运行:
ps aux | grep service
如果服务正在运行,你会看到类似以下的输出:
user 1234 0.0 0.1 123456 12345 ? Ssl 12:34 0:00 ./service
停止服务
要停止服务,你可以使用 kill 命令。首先找到服务的进程 ID(PID):
ps aux | grep service
然后使用 kill 命令停止服务:
kill 1234
如果服务没有响应,可以使用 kill -9 强制停止:
kill -9 1234
总结
nohup 是一个非常有用的工具,用于在后台启动服务并确保服务在终端关闭后继续运行。通过重定向输出,你可以方便地记录服务的日志。

浙公网安备 33010602011771号