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

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

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 и не знаю, почему в псевдониме он не работает, любой может помочь меня? большое спасибо, ребята.

0
задан 5 April 2016 в 15:46

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, и команды выполняются один за другим в текущей оболочке.

Используя & вместо ; не поможет, потому что Bash все еще интерпретирует &; выход ; или & не поможет также, потому что 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'"

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

0
ответ дан 6 April 2016 в 01:46

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

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