Se você realmente precisar de várias instâncias do processo do gnome-terminal em execução (mas por que deveria?), siga as etapas em link exceto pela parte do gdb.
gnome-terminal --tab --title="700" --disable-factory -e
Failed to parse arguments: Option "--disable-factory" is no longer supported in this version of gnome-terminal.
eu tenho gnome3 Qualquer solução, por favor, exceto desinstalar gnome?
Para o benefício do leitor.
A opção --disable-factory
obteve removido na V3.8 de gnome-terminal
e há de jeito nenhum arquivar este comportamento do jeito fácil. Pelo menos não uma maneira, que pode ser explicada às pessoas, que não são fluentes na sintaxe da shell.
Daí a linha de comando
gnome-terminal --tab --title="700" --disable-factory -e ...
falha com o erro apresentado na pergunta.
% bl0ck_qu0te% BTW: Ubuntu 16.04 restaurado --disable-factory
usando um wrapper que emula esse recurso . (Se você olha a complexidade deste wrapper , meu discurso ainda se aplica mais do que antes.)
Eu chamo isso de 0
, porque ambos não são soluções realmente adequadas. Uma solução adequada é mostrada na Variante 1.
Uma primeira coisa, você pode tentar, é remover a opção --disable-server
:
gnome-terminal --tab --title="700" -e ...
No entanto, isso tem a seguinte desvantagem:
Isso não espera mais até que gnome-terminal
termine . Se houver outro gnome-terminal
em execução, o comando retornará imediatamente. Normalmente, isso não é o que você quer, porque é por isso que a opção --disable-factory
estava presente em primeiro lugar.
Portanto, remover essa opção só é viável no caso em que você pode ter certeza de que, em todos os casos, nenhum outro gnome-terminal
está sendo executado.
Se esse não for o caso, mas você estiver em um caso em que outra execução gnome-terminal
não deve ser suportada, tente seguir variante de fallback desesperado :
killall -9 gnome-terminal
gnome-terminal --tab --title="700" -e ...
Mas cuidado! Isso elimina incondicionalmente todos os gnome-terminal
s que ainda estão abertos. Em um ambiente de produção, isso geralmente causará mais dano do que ajuda. Você foi avisado!
Se você não precisa executá-lo em gnome-terminal
e pode executá-lo em algum outro emulador de terminal. @muru comentou um bom substituto.
xfce4-terminal
entende quase o mesmo conjunto de opções que gnome-terminal
(e adiciona algumas outras opções muito úteis que estão faltando em gnome-terminal
por anos). Ele também tem uma opção documentada, que faz o que --disable-factory
fez para gnome-terminal
. A opção --tab
funciona de forma diferente para gnome-terminal
e, portanto, deve ser removida também para que algo funcione. A substituição é:
xfce4-terminal --title="700" --disable-server -e ...
Você também pode adicionar uma opção --hold
, se quiser ver a saída completa do comando antes que a janela seja fechada:
xfce4-terminal --hold --title="700" --disable-server -e ...
Por favor, note que xfce4-terminal
tem uma pequena condição de corrida, que infelizmente trunca a saída, então --hold
não é totalmente efetivo. Corrigindo isto corretamente (de tal forma que você pode usar copy'n'paste) está além do escopo da resposta, porém geralmente adicionando um pouco de echo $? && read -t.1
ao script que é executado com (atrás) -e
pode resolvê-lo 99% do tempo.
Caso você receba a mensagem, que xfce4-terminal
está faltando, você deverá instalá-la primeiro. Ele pode ser instalado em paralelo a gnome
, mesmo que ele pertença a outra variante de área de trabalho (Xfce):
sudo apt-get install xfce4-terminal
A única desvantagem é que xfce4-terminal
tem outra aparência do que gnome-terminal
e segue algumas outras
Existem inúmeras outras variantes possíveis para corrigir esse problema. A maioria deles é realmente complicada. Muito complicado para pessoas normais, aquelas que não estão realmente interessadas em shells.
Então eu os deixo longe. Minha recomendação é:
Como observado por @muru, tente usar xfce4-terminal
em vez de gnome-terminal
.
Todas as soluções simples não são realmente perfeitas, pois não retornam o valor de retorno do comando ( gnome-terminal
também não retorna). Infelizmente. Para consertar isso, esta é uma história completamente diferente.