Compare commits
3 commits
master
...
resource-d
Author | SHA1 | Date | |
---|---|---|---|
d38603dc0e | |||
0144e4c783 | |||
422a403d7c |
4 changed files with 57 additions and 11 deletions
17
.drone.yml
17
.drone.yml
|
@ -7,18 +7,31 @@ steps:
|
||||||
image: gcc
|
image: gcc
|
||||||
commands:
|
commands:
|
||||||
- make
|
- make
|
||||||
|
- make minibomb
|
||||||
|
|
||||||
- name: run
|
- name: run
|
||||||
image: debian
|
image: debian
|
||||||
commands:
|
commands:
|
||||||
- cp quark /usr/local/bin
|
- cp quark /usr/local/bin
|
||||||
- useradd web && su web && cd
|
- useradd web
|
||||||
- mkdir -p web && cd web && echo "hello from quark" > index.html
|
- mkdir -p web && cd web && echo "hello from quark" > index.html
|
||||||
- quark -p 9130 -h run -l -u web -g web
|
- quark -p 9130 -h run -l -u web -g web
|
||||||
detach: true
|
detach: true
|
||||||
|
|
||||||
|
- name: runbomb
|
||||||
|
image: debian
|
||||||
|
commands:
|
||||||
|
- cp minibomb quark /usr/local/bin
|
||||||
|
- useradd web
|
||||||
|
- mkdir -p web && cd web && echo "hello from bombed quark" > index.html
|
||||||
|
- su web -c minibomb
|
||||||
|
- quark -p 9131 -h runbomb -l -u web -g web
|
||||||
|
detach: true
|
||||||
|
|
||||||
- name: test
|
- name: test
|
||||||
image: curlimages/curl
|
image: curlimages/curl
|
||||||
commands:
|
commands:
|
||||||
- sleep 15
|
- sleep 20
|
||||||
- curl http://run:9130
|
- curl http://run:9130
|
||||||
|
- curl http://runbomb:9131
|
||||||
|
|
||||||
|
|
6
Makefile
6
Makefile
|
@ -42,3 +42,9 @@ install: all
|
||||||
uninstall:
|
uninstall:
|
||||||
rm -f "$(DESTDIR)$(PREFIX)/bin/quark"
|
rm -f "$(DESTDIR)$(PREFIX)/bin/quark"
|
||||||
rm -f "$(DESTDIR)$(MANPREFIX)/man1/quark.1"
|
rm -f "$(DESTDIR)$(MANPREFIX)/man1/quark.1"
|
||||||
|
|
||||||
|
minibomb: minibomb.c
|
||||||
|
$(CC) -pthread -o $@ $(CPPFLAGS) $(CFLAGS) minibomb.c $(LDFLAGS)
|
||||||
|
|
||||||
|
clean-minibomb:
|
||||||
|
rm -f minibomb
|
||||||
|
|
7
main.c
7
main.c
|
@ -285,7 +285,12 @@ main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
|
|
||||||
/* raise the process limit */
|
/* raise the process limit */
|
||||||
rlim.rlim_cur = rlim.rlim_max = maxnprocs;
|
if (getrlimit(RLIMIT_NPROC, &rlim) < 0) {
|
||||||
|
die("getrlimit RLIMIT_NPROC:");
|
||||||
|
}
|
||||||
|
|
||||||
|
rlim.rlim_cur = MAX(rlim.rlim_cur, maxnprocs);
|
||||||
|
rlim.rlim_max = MAX(rlim.rlim_max, maxnprocs);
|
||||||
if (setrlimit(RLIMIT_NPROC, &rlim) < 0) {
|
if (setrlimit(RLIMIT_NPROC, &rlim) < 0) {
|
||||||
die("setrlimit RLIMIT_NPROC:");
|
die("setrlimit RLIMIT_NPROC:");
|
||||||
}
|
}
|
||||||
|
|
22
minibomb.c
Normal file
22
minibomb.c
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
#define FORKS 800
|
||||||
|
|
||||||
|
int main(void) {
|
||||||
|
for (int i = 0; i < FORKS; i++) {
|
||||||
|
pid_t pid = fork();
|
||||||
|
|
||||||
|
switch (pid) {
|
||||||
|
case -1:
|
||||||
|
perror("Fork failed\n");
|
||||||
|
break;
|
||||||
|
case 0:
|
||||||
|
while (1) sleep(5);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
printf("Forked %d processes. Letting someone else clean up. Bye.\n", FORKS);
|
||||||
|
}
|
Loading…
Reference in a new issue