diff options
| author | Denis Vlasenko <vda.linux@googlemail.com> | 2006-11-17 18:58:16 +0000 |
|---|---|---|
| committer | Denis Vlasenko <vda.linux@googlemail.com> | 2006-11-17 18:58:16 +0000 |
| commit | 8a00f44bf4675076adfe312b71a6ff3670feef7d (patch) | |
| tree | bd51123a09a6e587b98dfa156ca7bf0ba55b2325 | |
| parent | a5342b4541c9c6b350ca015b94c7fd00d125e088 (diff) | |
| download | busybox-w32-8a00f44bf4675076adfe312b71a6ff3670feef7d.tar.gz busybox-w32-8a00f44bf4675076adfe312b71a6ff3670feef7d.tar.bz2 busybox-w32-8a00f44bf4675076adfe312b71a6ff3670feef7d.zip | |
runit: add runsv, runsvdir and sv. Oh yes.
It even seems to work. +11K. :(
| -rw-r--r-- | include/applets.h | 3 | ||||
| -rw-r--r-- | include/usage.h | 16 | ||||
| -rw-r--r-- | runit/Config.in | 22 | ||||
| -rw-r--r-- | runit/Kbuild | 5 | ||||
| -rw-r--r-- | runit/runit_lib.c | 23 | ||||
| -rw-r--r-- | runit/runit_lib.h | 12 |
6 files changed, 64 insertions, 17 deletions
diff --git a/include/applets.h b/include/applets.h index c4c75a83f..78fa68861 100644 --- a/include/applets.h +++ b/include/applets.h | |||
| @@ -246,6 +246,8 @@ USE_RPM(APPLET(rpm, _BB_DIR_BIN, _BB_SUID_NEVER)) | |||
| 246 | USE_RPM2CPIO(APPLET(rpm2cpio, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) | 246 | USE_RPM2CPIO(APPLET(rpm2cpio, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) |
| 247 | USE_RUN_PARTS(APPLET_ODDNAME(run-parts, run_parts, _BB_DIR_BIN, _BB_SUID_NEVER, run_parts)) | 247 | USE_RUN_PARTS(APPLET_ODDNAME(run-parts, run_parts, _BB_DIR_BIN, _BB_SUID_NEVER, run_parts)) |
| 248 | USE_RUNLEVEL(APPLET(runlevel, _BB_DIR_SBIN, _BB_SUID_NEVER)) | 248 | USE_RUNLEVEL(APPLET(runlevel, _BB_DIR_SBIN, _BB_SUID_NEVER)) |
| 249 | USE_RUNSV(APPLET(runsv, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) | ||
| 250 | USE_RUNSVDIR(APPLET(runsvdir, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) | ||
| 249 | USE_RX(APPLET(rx, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) | 251 | USE_RX(APPLET(rx, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) |
| 250 | USE_SED(APPLET(sed, _BB_DIR_BIN, _BB_SUID_NEVER)) | 252 | USE_SED(APPLET(sed, _BB_DIR_BIN, _BB_SUID_NEVER)) |
| 251 | USE_SEQ(APPLET(seq, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) | 253 | USE_SEQ(APPLET(seq, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) |
| @@ -270,6 +272,7 @@ USE_STTY(APPLET(stty, _BB_DIR_BIN, _BB_SUID_NEVER)) | |||
| 270 | USE_SU(APPLET(su, _BB_DIR_BIN, _BB_SUID_ALWAYS)) | 272 | USE_SU(APPLET(su, _BB_DIR_BIN, _BB_SUID_ALWAYS)) |
| 271 | USE_SULOGIN(APPLET(sulogin, _BB_DIR_SBIN, _BB_SUID_NEVER)) | 273 | USE_SULOGIN(APPLET(sulogin, _BB_DIR_SBIN, _BB_SUID_NEVER)) |
| 272 | USE_SUM(APPLET(sum, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) | 274 | USE_SUM(APPLET(sum, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) |
| 275 | USE_SV(APPLET(sv, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) | ||
| 273 | USE_SVLOGD(APPLET(svlogd, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) | 276 | USE_SVLOGD(APPLET(svlogd, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) |
| 274 | USE_SWAPONOFF(APPLET_ODDNAME(swapoff, swap_on_off, _BB_DIR_SBIN, _BB_SUID_NEVER,swapoff)) | 277 | USE_SWAPONOFF(APPLET_ODDNAME(swapoff, swap_on_off, _BB_DIR_SBIN, _BB_SUID_NEVER,swapoff)) |
| 275 | USE_SWAPONOFF(APPLET_ODDNAME(swapon, swap_on_off, _BB_DIR_SBIN, _BB_SUID_NEVER, swapon)) | 278 | USE_SWAPONOFF(APPLET_ODDNAME(swapon, swap_on_off, _BB_DIR_SBIN, _BB_SUID_NEVER, swapon)) |
diff --git a/include/usage.h b/include/usage.h index f1b4b351a..77986fea7 100644 --- a/include/usage.h +++ b/include/usage.h | |||
| @@ -2571,6 +2571,16 @@ USE_FEATURE_MDEV_CONFIG( \ | |||
| 2571 | "$ runlevel /var/run/utmp\n" \ | 2571 | "$ runlevel /var/run/utmp\n" \ |
| 2572 | "N 2" | 2572 | "N 2" |
| 2573 | 2573 | ||
| 2574 | #define runsv_trivial_usage \ | ||
| 2575 | "dir" | ||
| 2576 | #define runsv_full_usage \ | ||
| 2577 | "Start and monitor a service and optionally an appendant log service." | ||
| 2578 | |||
| 2579 | #define runsvdir_trivial_usage \ | ||
| 2580 | "[-P] dir" | ||
| 2581 | #define runsvdir_full_usage \ | ||
| 2582 | "Start a runsv process for each subdirectory." | ||
| 2583 | |||
| 2574 | #define rx_trivial_usage \ | 2584 | #define rx_trivial_usage \ |
| 2575 | "FILE" | 2585 | "FILE" |
| 2576 | #define rx_full_usage \ | 2586 | #define rx_full_usage \ |
| @@ -2844,6 +2854,12 @@ USE_FEATURE_START_STOP_DAEMON_FANCY( \ | |||
| 2844 | "\t-r\tuse BSD sum algorithm (1K blocks)\n" \ | 2854 | "\t-r\tuse BSD sum algorithm (1K blocks)\n" \ |
| 2845 | "\t-s\tuse System V sum algorithm (512byte blocks)" | 2855 | "\t-s\tuse System V sum algorithm (512byte blocks)" |
| 2846 | 2856 | ||
| 2857 | #define sv_trivial_usage \ | ||
| 2858 | "[-v] [-w sec] command service..." | ||
| 2859 | #define sv_full_usage \ | ||
| 2860 | "Report the current status and control the state of services " \ | ||
| 2861 | "monitored by the runsv supervisor." | ||
| 2862 | |||
| 2847 | #define svlogd_trivial_usage \ | 2863 | #define svlogd_trivial_usage \ |
| 2848 | "[-ttv] [-r c] [-R abc] [-l len] [-b buflen] dir..." | 2864 | "[-ttv] [-r c] [-R abc] [-l len] [-b buflen] dir..." |
| 2849 | #define svlogd_full_usage \ | 2865 | #define svlogd_full_usage \ |
diff --git a/runit/Config.in b/runit/Config.in index c849c074c..8a7deea72 100644 --- a/runit/Config.in +++ b/runit/Config.in | |||
| @@ -5,6 +5,28 @@ | |||
| 5 | 5 | ||
| 6 | menu "Runit Utilities" | 6 | menu "Runit Utilities" |
| 7 | 7 | ||
| 8 | config RUNSV | ||
| 9 | bool "runsv" | ||
| 10 | default n | ||
| 11 | help | ||
| 12 | runsv starts and monitors a service and optionally an appendant log | ||
| 13 | service. | ||
| 14 | |||
| 15 | config RUNSVDIR | ||
| 16 | bool "runsvdir" | ||
| 17 | default n | ||
| 18 | help | ||
| 19 | runsvdir starts a runsv process for each subdirectory, or symlink to | ||
| 20 | a directory, in the services directory dir, up to a limit of 1000 | ||
| 21 | subdirectories, and restarts a runsv process if it terminates. | ||
| 22 | |||
| 23 | config SV | ||
| 24 | bool "sv" | ||
| 25 | default n | ||
| 26 | help | ||
| 27 | sv reports the current status and controls the state of services | ||
| 28 | monitored by the runsv supervisor. | ||
| 29 | |||
| 8 | config SVLOGD | 30 | config SVLOGD |
| 9 | bool "svlogd" | 31 | bool "svlogd" |
| 10 | default n | 32 | default n |
diff --git a/runit/Kbuild b/runit/Kbuild index 730035632..ad1706cb6 100644 --- a/runit/Kbuild +++ b/runit/Kbuild | |||
| @@ -5,5 +5,8 @@ | |||
| 5 | # Licensed under the GPL v2, see the file LICENSE in this tarball. | 5 | # Licensed under the GPL v2, see the file LICENSE in this tarball. |
| 6 | 6 | ||
| 7 | lib-y:= | 7 | lib-y:= |
| 8 | lib-$(CONFIG_CHPST) += chpst.o | 8 | lib-$(CONFIG_RUNSV) += runsv.o runit_lib.o |
| 9 | lib-$(CONFIG_RUNSVDIR) += runsvdir.o runit_lib.o | ||
| 10 | lib-$(CONFIG_SV) += sv.o runit_lib.o | ||
| 9 | lib-$(CONFIG_SVLOGD) += svlogd.o runit_lib.o | 11 | lib-$(CONFIG_SVLOGD) += svlogd.o runit_lib.o |
| 12 | lib-$(CONFIG_CHPST) += chpst.o | ||
diff --git a/runit/runit_lib.c b/runit/runit_lib.c index 322bef858..c95d641f1 100644 --- a/runit/runit_lib.c +++ b/runit/runit_lib.c | |||
| @@ -519,6 +519,7 @@ void taia_uint(struct taia *t,unsigned s) | |||
| 519 | 519 | ||
| 520 | 520 | ||
| 521 | /*** stralloc_cat.c ***/ | 521 | /*** stralloc_cat.c ***/ |
| 522 | #if 0 | ||
| 522 | 523 | ||
| 523 | int stralloc_cat(stralloc *sato,const stralloc *safrom) | 524 | int stralloc_cat(stralloc *sato,const stralloc *safrom) |
| 524 | { | 525 | { |
| @@ -577,6 +578,7 @@ int stralloc_copys(stralloc *sa,const char *s) | |||
| 577 | 578 | ||
| 578 | GEN_ALLOC_append(stralloc,char,s,len,a,i,n,x,30,stralloc_readyplus,stralloc_append) | 579 | GEN_ALLOC_append(stralloc,char,s,len,a,i,n,x,30,stralloc_readyplus,stralloc_append) |
| 579 | 580 | ||
| 581 | #endif /* stralloc */ | ||
| 580 | 582 | ||
| 581 | /*** iopause.c ***/ | 583 | /*** iopause.c ***/ |
| 582 | 584 | ||
| @@ -643,7 +645,7 @@ int ndelay_on(int fd) | |||
| 643 | 645 | ||
| 644 | int open_append(const char *fn) | 646 | int open_append(const char *fn) |
| 645 | { | 647 | { |
| 646 | return open(fn,O_WRONLY | O_NDELAY | O_APPEND | O_CREAT,0600); | 648 | return open(fn, O_WRONLY|O_NDELAY|O_APPEND|O_CREAT, 0600); |
| 647 | } | 649 | } |
| 648 | 650 | ||
| 649 | 651 | ||
| @@ -651,7 +653,7 @@ int open_append(const char *fn) | |||
| 651 | 653 | ||
| 652 | int open_read(const char *fn) | 654 | int open_read(const char *fn) |
| 653 | { | 655 | { |
| 654 | return open(fn,O_RDONLY | O_NDELAY); | 656 | return open(fn, O_RDONLY|O_NDELAY); |
| 655 | } | 657 | } |
| 656 | 658 | ||
| 657 | 659 | ||
| @@ -667,12 +669,12 @@ int open_trunc(const char *fn) | |||
| 667 | 669 | ||
| 668 | int open_write(const char *fn) | 670 | int open_write(const char *fn) |
| 669 | { | 671 | { |
| 670 | return open(fn,O_WRONLY | O_NDELAY); | 672 | return open(fn, O_WRONLY|O_NDELAY); |
| 671 | } | 673 | } |
| 672 | 674 | ||
| 673 | 675 | ||
| 674 | /*** openreadclose.c ***/ | 676 | /*** openreadclose.c ***/ |
| 675 | 677 | #if 0 | |
| 676 | int openreadclose(const char *fn,stralloc *sa,unsigned bufsize) | 678 | int openreadclose(const char *fn,stralloc *sa,unsigned bufsize) |
| 677 | { | 679 | { |
| 678 | int fd; | 680 | int fd; |
| @@ -684,10 +686,11 @@ int openreadclose(const char *fn,stralloc *sa,unsigned bufsize) | |||
| 684 | if (readclose(fd,sa,bufsize) == -1) return -1; | 686 | if (readclose(fd,sa,bufsize) == -1) return -1; |
| 685 | return 1; | 687 | return 1; |
| 686 | } | 688 | } |
| 689 | #endif | ||
| 687 | 690 | ||
| 688 | 691 | ||
| 689 | /*** pathexec_env.c ***/ | 692 | /*** pathexec_env.c ***/ |
| 690 | 693 | #if 0 | |
| 691 | static stralloc plus; | 694 | static stralloc plus; |
| 692 | static stralloc tmp; | 695 | static stralloc tmp; |
| 693 | 696 | ||
| @@ -748,10 +751,10 @@ void pathexec(char **argv) | |||
| 748 | pathexec_run(*argv,argv,e); | 751 | pathexec_run(*argv,argv,e); |
| 749 | free(e); | 752 | free(e); |
| 750 | } | 753 | } |
| 751 | 754 | #endif | |
| 752 | 755 | ||
| 753 | /*** pathexec_run.c ***/ | 756 | /*** pathexec_run.c ***/ |
| 754 | 757 | #if 0 | |
| 755 | static stralloc tmp; | 758 | static stralloc tmp; |
| 756 | 759 | ||
| 757 | void pathexec_run(const char *file,char *const *argv,char *const *envp) | 760 | void pathexec_run(const char *file,char *const *argv,char *const *envp) |
| @@ -792,7 +795,7 @@ void pathexec_run(const char *file,char *const *argv,char *const *envp) | |||
| 792 | path += 1; | 795 | path += 1; |
| 793 | } | 796 | } |
| 794 | } | 797 | } |
| 795 | 798 | #endif | |
| 796 | 799 | ||
| 797 | /*** pmatch.c ***/ | 800 | /*** pmatch.c ***/ |
| 798 | 801 | ||
| @@ -853,7 +856,7 @@ int prot_uid(int uid) | |||
| 853 | 856 | ||
| 854 | 857 | ||
| 855 | /*** readclose.c ***/ | 858 | /*** readclose.c ***/ |
| 856 | 859 | #if 0 | |
| 857 | int readclose_append(int fd,stralloc *sa,unsigned bufsize) | 860 | int readclose_append(int fd,stralloc *sa,unsigned bufsize) |
| 858 | { | 861 | { |
| 859 | int r; | 862 | int r; |
| @@ -871,7 +874,7 @@ int readclose(int fd,stralloc *sa,unsigned bufsize) | |||
| 871 | if (!stralloc_copys(sa,"")) { close(fd); return -1; } | 874 | if (!stralloc_copys(sa,"")) { close(fd); return -1; } |
| 872 | return readclose_append(fd,sa,bufsize); | 875 | return readclose_append(fd,sa,bufsize); |
| 873 | } | 876 | } |
| 874 | 877 | #endif | |
| 875 | 878 | ||
| 876 | /*** scan_ulong.c ***/ | 879 | /*** scan_ulong.c ***/ |
| 877 | 880 | ||
diff --git a/runit/runit_lib.h b/runit/runit_lib.h index d306164ea..1f911919d 100644 --- a/runit/runit_lib.h +++ b/runit/runit_lib.h | |||
| @@ -233,7 +233,7 @@ int ta_append(ta *x,const type *i) \ | |||
| 233 | 233 | ||
| 234 | 234 | ||
| 235 | /*** stralloc.h ***/ | 235 | /*** stralloc.h ***/ |
| 236 | 236 | #if 0 | |
| 237 | GEN_ALLOC_typedef(stralloc,char,s,len,a) | 237 | GEN_ALLOC_typedef(stralloc,char,s,len,a) |
| 238 | 238 | ||
| 239 | extern int stralloc_ready(stralloc *,unsigned); | 239 | extern int stralloc_ready(stralloc *,unsigned); |
| @@ -256,7 +256,7 @@ extern int stralloc_catlong0(stralloc *,long,unsigned); | |||
| 256 | #define stralloc_catuint0(sa,i,n) (stralloc_catulong0((sa),(i),(n))) | 256 | #define stralloc_catuint0(sa,i,n) (stralloc_catulong0((sa),(i),(n))) |
| 257 | #define stralloc_catint0(sa,i,n) (stralloc_catlong0((sa),(i),(n))) | 257 | #define stralloc_catint0(sa,i,n) (stralloc_catlong0((sa),(i),(n))) |
| 258 | #define stralloc_catint(sa,i) (stralloc_catlong0((sa),(i),0)) | 258 | #define stralloc_catint(sa,i) (stralloc_catlong0((sa),(i),0)) |
| 259 | 259 | #endif | |
| 260 | 260 | ||
| 261 | /*** iopause.h ***/ | 261 | /*** iopause.h ***/ |
| 262 | 262 | ||
| @@ -290,9 +290,9 @@ extern int open_write(const char *); | |||
| 290 | 290 | ||
| 291 | 291 | ||
| 292 | /*** openreadclose.h ***/ | 292 | /*** openreadclose.h ***/ |
| 293 | 293 | #if 0 | |
| 294 | extern int openreadclose(const char *,stralloc *,unsigned); | 294 | extern int openreadclose(const char *,stralloc *,unsigned); |
| 295 | 295 | #endif | |
| 296 | 296 | ||
| 297 | /*** pathexec.h ***/ | 297 | /*** pathexec.h ***/ |
| 298 | 298 | ||
| @@ -313,10 +313,10 @@ extern int prot_uid(int); | |||
| 313 | 313 | ||
| 314 | 314 | ||
| 315 | /*** readclose.h ***/ | 315 | /*** readclose.h ***/ |
| 316 | 316 | #if 0 | |
| 317 | extern int readclose_append(int,stralloc *,unsigned); | 317 | extern int readclose_append(int,stralloc *,unsigned); |
| 318 | extern int readclose(int,stralloc *,unsigned); | 318 | extern int readclose(int,stralloc *,unsigned); |
| 319 | 319 | #endif | |
| 320 | 320 | ||
| 321 | /*** scan.h ***/ | 321 | /*** scan.h ***/ |
| 322 | 322 | ||
