-
-
Save rofl0r/6168719 to your computer and use it in GitHub Desktop.
#define _XOPEN_SOURCE 700 | |
#include <signal.h> | |
#include <unistd.h> | |
int main() | |
{ | |
sigset_t set; | |
int status; | |
if (getpid() != 1) return 1; | |
sigfillset(&set); | |
sigprocmask(SIG_BLOCK, &set, 0); | |
if (fork()) for (;;) wait(&status); | |
sigprocmask(SIG_UNBLOCK, &set, 0); | |
setsid(); | |
setpgid(0, 0); | |
return execve("/etc/rc", (char *[]){ "rc", 0 }, (char *[]){ 0 }); | |
} |
Is it not possible to straight up execute the /etc/rc script? Just by adding init=/etc/rc to the kernel command line?
Just go outside instead of turning on your computer. It uses 0B of disk space
I'm 100% sure this is way too slow. We need to write this in assembly. So that it'll fit in 1 sector of a drive.
I like shell scripts that don't need to be recompiled... A mount -a && /etc/rc
works just fine
Is it not possible to straight up execute the /etc/rc script? Just by adding init=/etc/rc to the kernel command line?
You need a always running daemon, who will be reap a zombie. It is single work for init.
If you redirect this job to /etc/rc, you got a systemd again.
You cannot start an another daemon from /etc/rc for this. Zombie go to process with PID 1. /etc/rc have a PID 1 in your case.
For those confused, all this code does is:
SIG_BLOCK
constant./etc/rc
script.