zan*_*ona 27 arguments daemon google-chrome background-process
我的.bash_profile
文件中有2个别名,包含:
alias chrome="/Applications/Google\\ \\Chrome.app/Contents/MacOS/Google\\ \\Chrome"
alias chromex="chrome --disable-web-security"
Run Code Online (Sandbox Code Playgroud)
但是在运行时,它会打开Chrome但仍然保持终端窗口......一旦我关闭终端窗口,它也会关闭chrome.
有没有办法让它在后台运行?
我记得我用这个用于thin
web服务器thin start -d
或者thin start --daemonize
?
谢谢
除了詹姆斯回答,我还找到了nohup
命令行,这使我可以退出终端而没有问题,这是一个混合,通过附加&
到nohup
命令:
$ nohup chromex &
Run Code Online (Sandbox Code Playgroud)
默认输出将写入nohup.out
文件
要停止我可以运行的作业ps ax
,通过正确的命令找到PID然后kill -9 PID
Jam*_*ley 53
将一个&符号放在命令行的末尾.
alias chrome="/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome &"
Run Code Online (Sandbox Code Playgroud)
如果您还不希望看到任何调试chrome输出,请将stdout和stderr重定向到/ dev/null
alias chrome="/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome 2>&1 > &"
Run Code Online (Sandbox Code Playgroud)
在Mac上,您可以使这更简单:
alias chrome="open /Applications/Google\ Chrome.app/ --args --disable-web-security"
Run Code Online (Sandbox Code Playgroud)
你的第二个要求使这个稍微复杂一点.&需要在命令行的末尾; 但是你的第二个别名会在第一个命令的末尾添加命令 - 即在&符之后 - 所以这不起作用.
为了解决这个问题,我们可以将'chrome'重新定义为一个函数.
chrome () {
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome $* 2>&1 &
}
Run Code Online (Sandbox Code Playgroud)
这$*
意味着传递给函数的任何命令行参数都将插入到&符号之前.这意味着您仍然可以将第二个别名定义为
alias chromex="chrome --disable-web-security"
Run Code Online (Sandbox Code Playgroud)
这将扩展到
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --disable-web-security 2>&1 &
Run Code Online (Sandbox Code Playgroud)
顺便说一句,这只是被称为"在后台"运行."作为守护进程"将指的是每当打开机器时运行的服务器进程,并且不依赖于任何用户的会话.