Como criar um alias para executar um servidor e seu cliente simultaneamente

0

Estou tentando criar um "alias" para executar um servidor em um terminal separado, depois de alguns segundos abrir seu cliente, este é o comando que estou tentando:

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

O problema com isso é que ele não executa o segundo comando até que eu feche o servidor (CTRL + C) e ele execute o cliente normalmente, tentei com & amp; e & amp; & amp; no final do comando do servidor sem sucesso, parece que o servidor, mesmo sendo executado com -e ainda não está liberando o terminal para o outro comando para ser executado, eu fui bem sucedido com -e antes e não tenho idéia do porquê em um alias não funciona, alguém pode me ajudar? muito obrigado pessoal.

    
por w1r3dh4ck3r 05.04.2016 / 14:41

1 resposta

0

O problema é que o alias é primeiro interpretado pelo Bash e depois pelo XTerm.

O Bash interpreta todo o alias como dois comandos separados: xterm -e sudo /opt/king-phisher/KingPhisherServer -L INFO -f /opt/king-$/king-phisher/server_config.yml e /opt/king-phisher/KingPhisher , e os comandos são executados um após o outro no shell atual.

Usar & em vez de ; não ajudará, porque o Bash ainda interpretará & ; O escape de ; ou & também não ajuda, porque o XTerm não tem noção da sintaxe Bash e passará ; ou & como um argumento para /opt/king-phisher/KingPhisherServer (juntamente com o restante do comando, /opt/king-phisher/KingPhisher ).

A única solução é dizer ao XTerm para invocar o Bash e deixar o Bash fazer a análise:

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 menos que o usuário não precise fornecer uma sudo senha para executar /opt/king-phisher/KingPhisherServer , isso fará com que o servidor não inicie devido ao comando sudo ser antecedido antes de poder ler a senha; veja aqui para possíveis soluções: Como executo um comando sudo precisando de entrada de senha em segundo plano? .

    
por kos 05.04.2016 / 16:25