Как создать псевдоним для одновременной работы сервера и его клиента

Я пытаюсь создать "псевдоним" для запуска сервера в отдельном терминале, а затем через несколько секунд открыть его клиент, я пытаюсь выполнить команду:

alias kingp='xterm -e sudo /opt/king-phisher/KingPhisherServer -L INFO -f /opt/king-$/king-phisher/server_config.yml; /opt/king-phisher/KingPhisher'

Проблема в том, что он не запускает вторую команду до тех пор, пока я не закрою сервер (CTRL+C), и на них он нормально запускает клиент. Я пытался использовать & и && в конце команды сервера, но безрезультатно. кажется, что сервер, даже будучи запущенным с -e, все еще не освобождает терминал для запуска другой команды, я успешно работал с -e и не знаю, почему в псевдониме он не работает, любой может Помоги мне? спасибо большое ребята

1 ответ

Проблема в том, что псевдоним сначала интерпретируется Bash, а затем XTerm.

Bash интерпретирует весь псевдоним как две отдельные команды: xterm -e sudo /opt/king-phisher/KingPhisherServer -L INFO -f /opt/king-$/king-phisher/server_config.yml а также /opt/king-phisher/KingPhisherи команды выполняются одна за другой в текущей оболочке.

С помощью & вместо ; не поможет, потому что Баш все равно будет интерпретировать &; побег ; или же & тоже не поможет, потому что XTerm не имеет представления о синтаксисе Bash и будет проходить либо ; или же & в качестве аргумента /opt/king-phisher/KingPhisherServer (вместе с остальной частью команды, /opt/king-phisher/KingPhisher).

Единственное решение состоит в том, чтобы сказать XTerm, чтобы он вызвал Bash и позволил Bash выполнить анализ:

alias kingp="xterm -e bash -c 'sudo /opt/king-phisher/KingPhisherServer -L INFO -f /opt/king-$/king-phisher/server_config.yml & /opt/king-phisher/KingPhisher'"

Если ваш пользователь не должен предоставлять sudo пароль для запуска /opt/king-phisher/KingPhisherServerэто приведет к тому, что сервер не запустится из-за sudo команда должна быть перед тем как прочитать пароль; см. здесь возможные решения: как запустить команду sudo, требующую ввода пароля в фоновом режиме?,

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