如何才能做到启动一个程序在后台,然后后面通过指令将它调到前台
如有一个程序a
a run --bg b.exe --name b
让b.exe在后台运行然后
a fg b
将b调回前台
(最好能跨平台,或者在不同平台下的实现也可以)
如果做不到的话能不能直接给这个后台程序传一个字符串,让这个后台执行字符串(就是那种可以输入命令的程序比如ftp之类的)
http://c.biancheng.net/view/1078.html
该回答引用GPTᴼᴾᴱᴺᴬᴵ
这个问题涉及到操作系统层面的进程管理和控制,不同的操作系统可能有不同的实现方式。以下是一些常见操作系统的实现方式:
在 Linux 和 macOS 等 Unix-like 系统中,可以使用以下命令启动一个后台进程:
nohup command > /dev/null 2>&1 &
这个命令会将 command 进程启动在后台,并将输出重定向到 /dev/null,同时将标准输出和标准错误重定向到同一个文件,并将进程放到后台运行。然后可以使用 fg 命令将进程调回前台。
在 Windows 操作系统中,可以使用以下命令启动一个后台进程:
start /B command
这个命令会将 command 进程启动在后台,并不会打开一个新的窗口。如果要将进程调回前台,可以使用以下命令:
tasklist /FI "IMAGENAME eq command.exe"
taskkill /PID <PID>
对于直接给后台程序传字符串的需求,可以考虑使用一些交互式命令行工具,如 Expect,它可以模拟用户在命令行中输入命令,并捕获命令的输出。这种方式需要后台程序支持交互式命令行,否则可能无法实现。