У меня есть простой сценарий, чтобы запустить node.js веб-сервер и открыть URL в браузере. Однако последняя часть, кажется, не работает, это, привычка открывает URL в браузере (или где-либо еще).
Это - код, который я получил до сих пор:
#!/bin/bash
node server.js;
xdg-open http://localhost:9000/;
Везде я ищу, я нахожу то же, я должен использовать:
xdg-open URL
но это только, кажется, работает при вводе этого в терминале, не в моем startserver.sh файле. Это запустит сервер, но не откроет URL, введение кода в терминале однако, кажется, работает.
Это сбивает с толку, почему это не работает в моем сценарии?
Это - очень короткий ответ, запустите node server.js
как фоновый процесс:
#!/bin/bash
node server.js &
xdg-open http://localhost:9000/
xdg-open
на самом деле сценарий оболочки (в моей системе). Это использует эвристику для предположения, каков браузер. Вы видели то, что это пытается сделать путем выполнения его с из сценария с
sh -x xdg-open http://localhost:9000/ >&/tmp/errors
Взгляд в /tmp/errors
для любых сообщений об отказе. Можно также просто заменить xdg-открытый под названием браузер, например, Firefox.
при запуске сценария от настольной кнопки может случиться так, что, когда средство запуска добирается до конца сценария, это уничтожает группу процесса. Попытайтесь добавить
sleep 99999
в конце для наблюдения, если это верно.
, При попытке выполнить Ваш startserver.sh
от куда-нибудь кроме Вашей настольной среды, xdg-open
, может быть нелегко пытаться найти который браузер использовать. Вы могли попытаться установить некоторые переменные среды для помощи ему.