如何在 Linux shell 中重新控制单独的进程?

qre*_*eon 2 linux debian bash shell

我刚刚在我的 VPS 上为我的兄弟设置了一个 Minecraft 服务器,并使用 bash 脚本运行它:
sh ./server.sh&

这样,服务器正在运行,我仍然可以使用腻子在同一命令行上工作。但是如果我想向 Minecraft 服务器输入命令怎么办?我如何在控制台屏幕上恢复它:
[10:17:23] [Server thread/INFO]: Starting minecraft server version 1.7.10 [10:17:23] [Server thread/INFO]: Loading properties [10:17:23] [Server thread/INFO]: Default game type: SURVIVAL [10:17:23] [Server thread/INFO]: Generating keypair [10:17:24] [Server thread/INFO]: Starting Minecraft server on *:25565 [10:17:24] [Server thread/INFO]: Preparing level "world" [10:17:24] [Server thread/INFO]: Preparing start region for level 0 [10:17:25] [Server thread/INFO]: Preparing spawn area: 52% [10:17:26] [Server thread/INFO]: Preparing spawn area: 99% [10:17:26] [Server thread/INFO]: Done (2.132s)! For help, type "help" or "?" <input line>

Dav*_*ill 6

如何让后台工作进入前台?

使用fg.

fg

将作业发送到前台

句法

fg [PID...]

选项

如果指定了 PID,则将具有指定组 ID 的作业放在前台。

将指定的作业发送到前台。在执行前台作业时,fish 被挂起。如果未指定作业,则将最后使用的作业置于前台。

所需进程的 PID 通常通过使用进程扩展来找到。

例子

将作业 ID 为 0 的作业放在前台:

fg %0

fg 将作业发送到前台

  • 更好的是,做`fg; bg` 所以当你 Ctrl+Z 离开服务器时,它会自动运行 `bg`。 (3认同)

小智 6

我会选择Screen。安装可以通过apt-get完成。之后,您只需输入screen提示,启动一个进程(即使不将其发送到后台),关闭会话,该进程仍会继续运行。要重新连接到屏幕会话,您只需 ssh 回到机器并输入screen -r. 您也可以通过按CTRL+A后跟从活动屏幕中分离出来CTRL+D