Ao desanexar o programa, você deve redirecionar as duas saídas para algum lugar (para / dev / null ou para o arquivo de log), e use:
&>/dev/null & ...when bash --version >= 4
ou
>/dev/null 2>&1 & ...all shells
em vez de apenas:
&
... assim que iniciar o ssh não precisa se preocupar com stdout, stderr e pode sair.
nohup nem sempre é importante (dependendo da configuração do shell e do tratamento do sinal hup do programa ..., no meu teste: 'sleep', 'xclock' e 'wine notepad.exe' continuam a funcionar sem necessidade de nohup). E em situações em que o nohup é necessário, geralmente o screen e o tmux são soluções melhores.
Assumindo bash > = 4, o exemplo mínimo para testar o comportamento de desanexar é o seguinte:
ssh 1.2.3.4 "sleep 10 &" ... exits after 10 seconds
ssh 1.2.3.4 "sleep 10 &>/dev/null &" ... exits immediately
Na sua situação específica de script1 / 2, a função fc_START_WINE_APP do script2 deve ser:
{ DISPLAY=:11.0 wine "$1" &>/dev/null & }
... funciona bem para o valor de $ 1 'notepad.exe' ... mas se você ainda quiser nohup por algum motivo, ele aceita apenas um comando, e você tem 2 (configuração de exibição e runing wine), então você deve embrulhe-o dentro do bash:
{ nohup bash -c "DISPLAY=:11.0 wine $1" &>/dev/null & }