Как я открываю URL из сценария удара?

У меня есть простой сценарий, чтобы запустить node.js веб-сервер и открыть URL в браузере. Однако последняя часть, кажется, не работает, это, привычка открывает URL в браузере (или где-либо еще).

Это - код, который я получил до сих пор:

#!/bin/bash
node server.js;
xdg-open http://localhost:9000/;

Везде я ищу, я нахожу то же, я должен использовать:

xdg-open URL

но это только, кажется, работает при вводе этого в терминале, не в моем startserver.sh файле. Это запустит сервер, но не откроет URL, введение кода в терминале однако, кажется, работает.

Это сбивает с толку, почему это не работает в моем сценарии?

1
задан 25 August 2014 в 21:21

2 ответа

Это - очень короткий ответ, запустите node server.js как фоновый процесс:

#!/bin/bash
node server.js &
xdg-open http://localhost:9000/
1
ответ дан 11 November 2019 в 09:33

xdg-open на самом деле сценарий оболочки (в моей системе). Это использует эвристику для предположения, каков браузер. Вы видели то, что это пытается сделать путем выполнения его с из сценария с

sh -x xdg-open http://localhost:9000/ >&/tmp/errors

Взгляд в /tmp/errors для любых сообщений об отказе. Можно также просто заменить xdg-открытый под названием браузер, например, Firefox.

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

 sleep 99999

в конце для наблюдения, если это верно.

, При попытке выполнить Ваш startserver.sh от куда-нибудь кроме Вашей настольной среды, xdg-open, может быть нелегко пытаться найти который браузер использовать. Вы могли попытаться установить некоторые переменные среды для помощи ему.

1
ответ дан 11 November 2019 в 09:33

Другие вопросы по тегам:

Похожие вопросы: