Não, não há essa restrição. Se fosse o caso, os comandos que não implementam o controle de tarefas (na prática, apenas shells) não seriam capazes de bifurcar um processo (como processos filhos herdam o grupo de processos) quando iniciados como xterm -e that-command
, por exemplo. / p>
Mesmo quando o líder da sessão é um shell interativo com o controle de tarefa ativado, você pode ter outros processos em seu grupo.
Em exibição:
xterm -e 'sleep 1000 & exec zsh'
E nesse xterm
:
PID PGID SID TTY TIME CMD
14003 14003 14003 pts/20 00:00:00 zsh
14004 14003 14003 pts/20 00:00:00 sleep
14012 14012 14003 pts/20 00:00:00 ps
A maioria dos comandos executados a partir de um shell interativo é executada em grupos de processos separados, mas não é o caso de todos.
Por exemplo, em bash
:
$ exec 3< <(sleep 1000)
$ ps -j
PID PGID SID TTY TIME CMD
13913 13913 13913 pts/19 00:00:00 bash
14136 13913 13913 pts/19 00:00:00 bash
14137 13913 13913 pts/19 00:00:00 sleep
14138 14138 13913 pts/19 00:00:00 ps
Ou os processos começaram como parte de expansões de prompt:
$ PS1=$'$(ps -j)\n$ '
PID PGID SID TTY TIME CMD
14212 14212 14212 pts/18 00:00:00 bash
14292 14212 14212 pts/18 00:00:00 ps
$