Como executo apenas o primeiro comando no backgound?

1

Eu quero enviar apenas o primeiro comando para executar em segundo plano. Como eu posso fazer isso? Por exemplo, para este comando

sudo apt-get update & && apt-get upgrade

Meu primeiro comando deve ser executado antes do segundo comando, como acima, e não quero executar o segundo comando como primeiro. Então, o exemplo acima é um bom exemplo, já que tenho que executar o comando update antes da atualização.

Mas dá erro (para o meu comando real também):

bash: syntax error near unexpected token '&&'
    
por αғsнιη 19.10.2014 / 11:52

1 resposta

2

Ambos em segundo plano:

~$ (sleep 1 &) && (sleep 2 &)
~$ 

1º no plano de fundo

~$ (sleep 1 &) && (sleep 2)
~$ 

não funcionará com o apt-get.

edit: achei.

 sudo bash -c 'apt-get update >/dev/null 2>&1 & disown' && sudo apt-get upgrade

Prova:

sudo bash -c 'apt-get update >/dev/null 2>&1 & disown' && sudo apt-get upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... The following packages were automatically installed and are no longer required:
  gtk2-engines-pixbuf libcrypt-blowfish-perl libcrypt-cbc-perl
  libcrypt-rijndael-perl libexpect-perl libgnome2-gconf-perl
  libgtk2-ex-simple-list-perl libgtk2-gladexml-perl libgtk2-unique-perl
  libio-stty-perl libkeybinder0 libnet-arp-perl libnet-pcap-perl
  libnet-proxy-perl libossp-uuid-perl libossp-uuid16 libunique-1.0-0
  libxml-parser-perl python-keybinder
Use 'apt-get autoremove' to remove them.
Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

e a atualização ainda está em execução:

~$ ps -ef|grep apt-get
root      6102  1519  1 12:11 pts/0    00:00:00 apt-get update

Ele quebrará a sequência: a atualização terminará antes da atualização.

    
por Rinzwind 19.10.2014 / 12:04