sudo で実行すると execl が動作しないように見える。なぜ?
$ cat -n e.c
   1 #include <stdio.h>
   2 #include <unistd.h>
   3
   4 int main() {
   5  pid_t pid;
   6  if ((pid = fork()) > 0) return 0;
   7  else if (pid < 0) return 1;
   8  execl("/bin/bash", "/bin/bash", "-c", "echo $$ $PPID >> /tmp/log", NULL);
   9  _exit(2);
  10 }
$ gcc -g e.c
$ ./a.out
$ cat /tmp/log
10593 1566
$ sudo ./a.out
$ cat /tmp/log
10593 1566
$