Windows 后台运行程序的简单方法
由于使用 YubiKey,我需要在 Windows 上运行 gpg-agent,于是我写了一个批处理文件 yubikey.bat
,其内容如下:
"C:\Program Files (x86)\gnupg\bin\gpg-agent.exe" --daemon --enable-putty-support
当双击运行这个文件时,Windows 那个黑乎乎的 Command 窗口就出现了,而且不能关闭,因为 gpg-agent 的 --daemon
参数在 Windows 下是没实现的。那有什么方式让一个命令行程序能后台运行呢?就像 Linux 那样。
我想到了 Mingw-w64,它可以简单的理解为运行在 Windows 上的 Linux 系统。最简单的安装方式是安装 Git Windows 客户端,就自动安装 Mingw-w64 了。
然后把 yubikey.bat
重命名为 yubikey.sh
,修改其内容如下,注意最后的 &
符就是 Linux 下后台运行程序的符号:
"C:\Program Files (x86)\gnupg\bin\gpg-agent.exe" --daemon --enable-putty-support &
保存 yubikey.sh
并双击运行,gpg-agent 就会在后台运行了。
如果需要退出 gpg-agent,在 Windows 桌面右键,选择 Git Bash Here
,在弹出的 Mingw-w64 窗口中输入 ps
查看 gpg-agent 的进程 ID,并使用 kill
停止即可:
$ ps -ef
UID PID PPID TTY STIME COMMAND
shengdon 19224 1 pty0 19:27:15 gpg-agent
shengdon 26168 20824 pty1 19:28:20 /usr/bin/ps
$ kill 19224
此方法应适用于 Windows 下所有的命令行程序。