我的 .bash_profile
有 2 个别名文件包含:
alias chrome="/Applications/Google\\ \\Chrome.app/Contents/MacOS/Google\\ \\Chrome"
alias chromex="chrome --disable-web-security"
但是在运行时,它会打开 Chrome,但一直保持终端窗口...一旦我关闭终端窗口,它也会关闭 chrome。
有什么办法让它在后台运行吗?
我记得我用它来 thin
网络服务器 thin start -d
或thin start --daemonize
?
谢谢
<小时/>更新
除了詹姆斯的回答我还发现了nohup
命令行使我可以毫无问题地退出终端,这是通过附加 &
来混合的。到nohup
命令:
$ nohup chromex &
默认输出写入nohup.out
文件
要停止作业,我可以运行 ps ax
,通过正确的命令找到PID,然后kill -9 PID
最佳答案
在命令行末尾放置一个 & 符号。
alias chrome="/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome &"
如果您也不想看到任何调试 chrome 输出,请将 stdout 和 stderr 重定向到/dev/null
alias chrome="/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome 2>&1 > &"
在 Mac 上,您可以使这变得更加简单:
alias chrome="open /Applications/Google\ Chrome.app/ --args --disable-web-security"
不过,你的第二个要求让这变得有点棘手。 & 需要位于命令行末尾;但是您的第二个别名将命令添加到第一个命令的末尾 - 即在&符号之后 - 所以这不起作用。
为了解决这个问题,我们可以将“chrome”重新定义为一个函数。
chrome () {
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome $* 2>&1 &
}
$*
表示传递给函数的任何命令行参数都将插入此处,位于与号之前。这意味着您仍然可以将第二个别名定义为
alias chromex="chrome --disable-web-security"
这将扩展到
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --disable-web-security 2>&1 &
顺便说一句,这只是称为“在后台”运行。 “作为守护进程”是指每当机器打开时运行的服务器进程,并且不依赖于任何用户的 session 。
关于google-chrome - 使用命令行参数作为后台进程运行 Mac Chrome,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6200756/