如何在Gvim中将进程在后台运行?

3

实际上,我需要做的是从GVim的插入模式中CTRL-Z退出一个进程。

我的命令:Cdprun执行cdprun.sh,它运行一个sudo-ed守护进程。我可以在sudo-ed守护进程调用的末尾添加&以在后台运行,这样可以工作,但用户不会被提示输入密码。相反,我想只是CTRL-Z退出它,但键盘中断不起作用。有什么想法吗?谢谢。


为什么需要键盘中断?是为了在守护进程运行时中止它,还是回到正在运行的Gvim? - romainl
2个回答

2

在这种情况下,通常有两个选择:一是使用像@Nicalas Martin提到的vim-addon-async这样的通用工具,或者使用支持内置解释器的vim:tcl与expect模块、python与pyexpect、perl与Expect,也许还有其他一些(注意:所有提到的软件包都不随tcl/python/perl一起发行)。第二个选项与当前情况特定相关:在其他地方进行后台处理。根据您的解释,我猜测您有一个类似于以下脚本:

#!/bin/sh
<...>
sudo run-daemon --daemon-args # Last executed line

我对吗?那么你可以把“backgrounding”放在另一个地方:不要

sudo run-daemon --daemon-args &

但是

sudo sh -c "nohup run-daemon --daemon-args &"

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接