set +m
desativa o modo monitor (também conhecido como controle de tarefa), mas isso não tem muito efeito, e a maioria deles não são efeitos úteis. Quando um trabalho em segundo plano é iniciado com o modo monitor desativado, o trabalho não é elegível para fg
e bg
, e o shell não executa a impressão de uma mensagem ou executa traps SIGCLD quando o trabalho é interrompido ou é interrompido reiniciado.
A principal diferença útil é que o modo monitor faz com que os pipelines sejam executados em seu próprio grupo de processos . Essa é uma consideração útil quando você quer matar todo um grupo de processos. Se o modo monitor estiver desabilitado, matar o grupo de processos do shell também mata seus subprocessos; se estiver habilitado, cada pipeline será seu próprio grupo e poderá ser morto por grupo de forma independente.
bash-4.3$ set -m bash-4.3$ sleep 1111 & [1] 17526 bash-4.3$ set +m bash-4.3$ sleep 2222 & [2] 17527 bash-4.3$ ps -o pid,ppid,pgid,sid,cmd 17526 17527 PID PPID PGID SID CMD 17526 17525 17526 7773 sleep 1111 17527 17525 17525 7773 sleep 2222