google-chrome - 使用命令行参数作为后台进程运行 Mac Chrome

标签 google-chrome daemon arguments background-process

我的 .bash_profile 有 2 个别名文件包含:

alias chrome="/Applications/Google\\ \\Chrome.app/Contents/MacOS/Google\\ \\Chrome"
alias chromex="chrome --disable-web-security"

但是在运行时,它会打开 Chrome,但一直保持终端窗口...一旦我关闭终端窗口,它也会关闭 chrome。

有什么办法让它在后台运行吗?

我记得我用它来 thin网络服务器 thin start -dthin 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/

相关文章:

daemon - 为什么守护进程会 fork ?

接受 numpy ndarray 或序列作为参数的 Python 函数

c - 请帮忙传递多维数组

java - 通过在 JComboBox 中进行选择将枚举值传递给函数

google-chrome - Google Chrome 开发者工具 - 禁用黑色模拟选项标尺

html - Bootstrap 导航栏不适用于 Chrome

javascript - 如何测试 Chrome 扩展?

javascript - Chrome 扩展 cookies.getAll 不起作用

android - 错误:无法启动守护进程。VM初始化期间发生错误无法为1572864KB对象堆保留足够的空间

daemon - 使用 celeryd 作为多个 django 应用程序的守护进程?