Geralmente, você deve preferir --command
(-c) a --session-command
. Você não deve estar usando -c com shells interativos (talvez você queira --shell /bin/bash
?), Mas você deve usá-lo com processos em segundo plano.
- session-command não chama setsid () para alocar uma nova sessão (que tem o efeito, como você descobriu, de permitir o uso continuado do controle tty e assim o bash lhe dará controle de processo sendo um shell interativo ). Isso significa que seus filhos podem ser atribuídos a qualquer grupo de processos da sessão pai, talvez a sessão foreground pg ou a evitar killpg () ou outra classificação baseada no ID do grupo de processos. Ele também mantém a capacidade de enviar SIGCONT para qualquer processo na sessão, embora eu não tenha certeza de como isso é abusivo.