I can only think about creating a new process, which will automatically become a leader
Falso.
#include <stdio.h>
#include <unistd.h>
int main(void) {
pid_t pid;
pid = fork();
printf("%d member of %d\n", getpid(), getpgrp());
return 0;
}
O novo processo compartilha o grupo do pai:
$ make leadership
cc -g leadership.c -o leadership
$ ./leadership
65617 member of 65617
65618 member of 65617
$
Somente com setpgid(2)
ou setsid(2)
ou chamadas de sistema semelhantes o grupo ou a liderança mudará.
2) Can group have many leaders?
Falso. Citando Stevens, "Programação Avançada no Ambiente UNIX" (2ª ed.), Capítulo 9, seção 4 (p. 243):
"Each process group can have a process group leader. The leader is identified by having its process group ID equal to its process ID."
Líder singular e um caso muito específico para identificar esse líder.