Подтвердить что ты не робот

Запустить Mac Chrome с аргументами командной строки в качестве фонового процесса

У меня есть 2 псевдонимов в моем файле .bash_profile, содержащий:

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

но при запуске он открывает Chrome, но держит окно терминала... Когда я закрываю окно терминала, он также закрывает хром.

Можно ли запустить его в фоновом режиме?

Я помню, я использовал это для веб-сервера thin с thin start -d или thin start --daemonize?

Спасибо


Обновление

Помимо ответа Джеймса, я также нашел командную строку nohup, которая позволила мне выйти из терминала без проблем, что было смешением, добавив команду & в команду nohup:

$ nohup chromex &

вывод по умолчанию записывается в файл nohup.out

Чтобы остановить задание, я могу запустить ps ax, найти PID, хотя и правильную команду, а затем kill -9 PID

4b9b3361

Ответ 1

Поместите амперсанд в конец командной строки.

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"

Второе требование делает это немного сложнее. The и должен быть в конце командной строки; но ваш второй псевдоним добавляет команды к концу первой команды - то есть после амперсанда - и поэтому это не работает.

Чтобы обойти это, мы можем переопределить "хром" как функцию.

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 &

Кстати, это просто называется "в фоновом режиме". "Как демон" относится к серверному процессу, который запускается всякий раз, когда машина включена, и не привязана к любому сеансу пользователя.

Ответ 2

Я определил псевдоним на моем .zshr(тот же для .bash_profile) следующим образом:

open_by_browser(){ open -a $1 $2}
alias firefox='open_by_browser firefox'
alias chrome='open_by_browser "Google Chrome"'

то я могу открыть html файл через Firefox или Chrome

например, Firefox

firefox xxx/index.html

Chrome

chrome xxx/index.html