diff options
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | README | 19 | ||||
| -rw-r--r-- | forkit.c | 24 | ||||
| -rw-r--r-- | makefile | 8 |
4 files changed, 52 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..567609b --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +build/ @@ -0,0 +1,19 @@ +forkit +______ + +This is slightly more convenient than: +```bash +nohup whatever &>/dev/null </dev/null & +``` + +Usage: +```bash +forkit whatever &>/dev/null </dev/null +``` +You can also not pipe redirect any streams you like into /dev/null, that's your prerogative. + +Installation: +```bash +make +sudo make install +``` diff --git a/forkit.c b/forkit.c new file mode 100644 index 0000000..4fe062f --- /dev/null +++ b/forkit.c @@ -0,0 +1,24 @@ +#include <stdio.h> +#include <unistd.h> + +int main (int argc, char** argv) { + if (argc < 2) { + fprintf(stderr, "forkit: give something to fork\n"); + return 1; + } + + pid_t child_pid = fork(); + if (child_pid < 0) { + perror("forkit"); + return 1; + } + + if (child_pid > 0) { + printf("forkit: great success\n"); + return 0; + } + + execvp(argv[1], &argv[1]); + perror("forkit"); + return 1; +} diff --git a/makefile b/makefile new file mode 100644 index 0000000..b4994db --- /dev/null +++ b/makefile @@ -0,0 +1,8 @@ +all: + mkdir -p build + cc forkit.c -o build/forkit +install: + cp build/forkit /usr/local/bin + chmod 0755 /usr/local/bin/forkit +clean: + rm -rf build |
