Essa é apenas a impressão que você obtém porque seu shell apenas exibe informações sobre trabalhos concluídos quando ele exibe um prompt; citando por exemplo a bash
manpage :
The shell learns immediately whenever a job changes state. Normally,
bash
waits until it is about to print a prompt before reporting changes in a job's status so as to not interrupt any other output. If the-b
option to theset
builtin command is enabled,bash
reports such changes immediately. Any trap onSIGCHLD
is executed for each child that exits.
Então, o que está acontecendo é
- Você inicia
ss
, que é executado em segundo plano. - O shell gera o próximo prompt.
- O trabalho em segundo plano é concluído, mas o shell ainda não produz nada.
- Você executa seu próximo comando (qualquer coisa,
ss
,cd
etc.). - O shell exibe o próximo prompt e, como está fazendo isso, exibe as informações de saída dos trabalhos concluídos ...
Você pode ver o que realmente está acontecendo executando set -b
para que o shell não espere por um aviso antes de exibir o status de saída de um trabalho concluído.