Luke Diamand:
Are there any plans to create a debian package that would just put all
the bits in the right place, so you can simply install the package and
have it then use runit-init as /sbin/init ?
It's called runit-run, created over a decade ago, and it was a Debian
package for some years
Laurent Bercot:
I'm of the opinion that packagers will naturally go towards what gives
them the less work, and the reason why supervision frameworks have
trouble
getting in is that they require different scripting and organization, so
supporting them would give packagers a lot of work; whereas
Avery Payne:
But from a practical perspective there isn't anything right now that
handles
dependencies at a global level.
Now you know that there is.
The nosh design is, as you have seen, one that separates policy and
mechanism. The service-manager provides a way of loading and unloading
John Albietz:
I wonder if this will help address a common situation for me where I
install a package and realize that at the end of the installation the
daemon is started using upstart or sysv.
At that point, to 'supervise' the app, I first have to stop the current
daemon and then
Laurent Bercot:
Readiness notification is hard: it needs support from the daemon
itself, and most daemons are not written that way.
Ah yes. That reminds me. I said a while back that I have to give some
of you some good news.
https://lists.debian.org/debian-devel/2014/10/msg00709.html
Buck Evan:
For example, I'd like to encode the fact that I don't expect service A to be
able to come up before service B.
In nosh, the filesystem is the database. This is an ordering, not a
dependency. One can separately encode in nosh (a) that start of service
B will cause the start of
Avery Payne:
There's already a project for adding definitions for various daemons.
http://bitbucket.org/avery_payne/supervision-scripts
There are even more than that. I mentioned back in January that the
nosh Guide chapter on creating service bundles has pointers to the run
file collections
Laurent Bercot wrote:
If all this fuss is about socket activation, then you can simply
forget it altogether. Jonathan was simply mentioning socket activation
as an alternative to real dependency management, as in that's what
some people do. I don't think he implied it was a good idea. Only
Guess who didn't spot that it was Cc:ed to a mailing list? (-:
Some of the salient points that others may be interested in from what I
sent privately, plus some extra general-audience stuff:
Yes, kqueue. Being in the very first bullet point right along with the
other important API
nosh is now up to version 1.16
* http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh.html
As you'll see, the WWW pages have expanded a bit. In part this is
because of the Big News, which is the arrival of FreeBSD packages,
bringing FreeBSD up to par with Debian. The old box
An anonymous person has a problem with runit under upstart on Ubuntu
Linux version 14: http://askubuntu.com/questions/630166/
So too do others on the hyperlinked Launchpad bug discussion. You might
like to help them all.
Jonathan de Boyne Pollard:
There's the steady chipping away at that list of 157 rc.d scripts,
which has just lost off its list a few pf services and savecore
amongst other things.
Yet another bug report that has come out of this is that the pflogd(8)
manual page has some gibberish under
Guillermo:
Have you ever considered just writing a BSD backend using kqueue /
kevent, and a Linux backend using epoll / inotify or whatever native
Linux mechanism is available to suit nosh's needs? I believe you
mentioned there's quite a few conditional compilation already to work
around
The nosh package is now up to version 1.22 .
* http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh.html
*
https://www.freebsd.org/news/status/report-2015-07-2015-09.html#The-nosh-Project
There are several things in this release:
* a new binary package for FreeBSD
*
On 2015-11-05 01:29, Guillermo wrote:
So problem solved. Thank you, this is a major improvement.
Brill. Thank you for the confirmation.
Guillermo:
Jonathan de Boyne Pollard:
If there's no error output, crank up strace and see what the last few system
calls are. It's probably worthwhile doing that anyway, in fact.
[...]
a read() call on the file descriptor returned by the inotify_init() that
produces an EINVAL error
Guillermo:
Colin Booth:
As it stands, nosh is playing in the same space as upstart, launchd, and
systemd.
If you don't look too closely, you could also say nosh without the userspace
terminal and login services stuff more or less covers the same ground as s6,
s6-rc and a small subset of
Colin Booth:
I mean't more in the "one stop low-level system management" sense.
Also in the design of the nosh unit files (which may be a case of
parallel evolution, my knowledge of the history of nosh is limited at
best). Pholosophicaly it's definitely coming from the daemontools world.
Guillermo:
Hi, I had some issues with the source package I thought I should mention:
As I said I intended to a while back, I incorporated fixes for these
into version 1.20. This is now out.
The nosh package is now up to version 1.21 .
* http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh.html
console-terminal-emulator now has a mouse input event protocol, and
speaks both the DEC VT Locator protocol and the xterm Private Mode 1006
protocol over the terminal
Laurent Bercot:
s6-rc is a service manager for Unix systems, running on top of a s6
supervision tree.
... which according to https://news.ycombinator.com/item?id=10277123 is
configured using proprietary binary blobs.
Joe Maloney:
do you have a source code repository somewhere for nosh?
*
http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh/source-package.html
The source package and how to build from source are here.
The nosh package is now up to version 1.20 .
* http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh.html
It's worth noting that the WWW site has gained some more pages, an
installation how-to and a quick look at user-space virtual terminals.
*
Colin Booth:
The distinction is specifically thus: ./up is what fires when the
service is brought up, ./down is what fires when the service is
brought down, ./run is what fires when a non-running service is
supposed to be running, and ./finish is when a running service stops.
Just because
The nosh package is now up to version 1.23 .
* http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh.html
*
https://www.freebsd.org/news/status/report-2015-07-2015-09.html#The-nosh-Project
There is one major item in this release.
* I've adjusted console-fb-realizer's keyboard
Guillermo:
It seems that the 'unload-when-stopped' and 'version' subcommands of
system-control are not mentioned in the documentation.
They both should be. I've added the latter to the doco ready for the
next version. The former I'm wavering about. I've had a to-do item for
some time to
Guillermo:
So I looked at the source/targets/virtualbox-host.target file from
which the bundle is created, and, IMHO, there are some issues with it.
That's not surprising. Running as a virtualbox host is not something
that is well tested. As you can see from the roadmap WWW page, there
Laurent Bercot:
for logdir in `cat logdir_list` ; do (cd $logdir && cat *.s *.u
current) ; done | sort > logfile
find `cat logdir_list` -maxdepth 1 -type f \( -name '*.[su]' -o -name
current \) -print0|xargs -0 sort -m -- > logfile
sort can do a merge sort directly from the original
Vincent de RIBOU:
Is it possible to perform the same mechanism but having concatenated
file along all the others at all times ?
There's always tail with the -F option on a list of "current" files.
But you're then limited to just the "current" log data, it's tricky to
track which output
Laurent Bercot:
You can't supervise a pipeline per se; you need to supervise both
processes in the pipeline independently, and make sure the pipe isn't
broken when one of them dies.
So, have "exec inotifywait /dev/disk" as foobar/run, and have "exec
automounter.py" as foobar/log/run. This
fREW Schmidt:
To read the docs check out
https://github.com/frioux/cgid/releases/download/v0.1.0/cgid-v0.1.0,
where you can see examples of how to run under `nosh` or `s6`.
That URL returned an XML error document from Amazon to me.
https://github.com/frioux/cgid/releases/tag/v0.1.0 was a
The nosh package is now up to version 1.25 .
* http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh.html
*
https://www.freebsd.org/news/status/report-2015-07-2015-09.html#The-nosh-Project
As you may have noticed from discussions elsewhere, a new
oom-kill-protect utility has
I was going to warn you that you're about to kick yourself, but I see
that Guillermo has already replied, so you're probably already kicking
yourself. (-:
fREW Schmidt:
First off, there's no README or anything, so I sorta have to guess.
[...] Again there's no README for redo.
As
Guillermo:
And as a consequence, the Guide ends up never actually explaining what
the unload-when-stopped subcommand does (AFAICS, make service-manager
unload the named service after its 'stop' file finishes executing,
whatever the reason for running it was, so that a subsequent
Guillermo:
So, the convert-systemd-units tool recognizes the systemd 'StandardInput=tty'
unit file directive, and translates it to a vc-get-tty + open-controlling-tty
sequence in the 'run' file of the generated bundle directory. Which does more
than just redirecting stdin to the appropriate
The nosh package is now up to version 1.27 .
* http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh.html
*
https://www.freebsd.org/news/status/report-2015-07-2015-09.html#The-nosh-Project
In fact, it is soon to be version 1.28. This is a somewhat delayed
notice for 1.27,
The nosh package is now up to version 1.28 .
* https://jdebp.eu./Softwares/nosh/
*
https://www.freebsd.org/news/status/report-2015-07-2015-09.html#The-nosh-Project
* http://jdebp.info./Softwares/nosh/
There's a lot in this one: MySQL and MariaDB changes; more prophylaxis
for Desktop Bus bus
Guillermo:
OpenBSD
===
[...]
There are an awful lot of limitations to OpenBSD, [...]
How funny it is that this summary and the WWW page echo the sentiments
in skarnet.org packages' source files comments and commit messages :D
We didn't collaborate. (-: I don't actually know what M.
>
> I'm going to be very naughty and patch 1.28 post-release. It's a minor
> change.
>
I've changed my mind. I'm going to point the two of you at a potential version
1.29 and see how you get on.
This is because I have ended up doing slightly more than a 2-line script patch.
Laurent Bercot:
You want runsvdir to be your reaper, so you'd just run "local-reaper
runsvdir scandir" instead of "runsvdir scandir".
Actually you'd run
> local-reaper true runsvdir scandir
Kamil CholewiĆski:
Reaping orphaned children should be the duty of PID 1.
* http://unix.stackexchange.com/a/197472/5132
* http://unix.stackexchange.com/a/177361/5132
There is no objective basis for such a claim, this not actually being a
minimal requirement of process #1. Welcome to the
Guillermo:
One could instead attach controllers to the hierarchy rooted in
/sys/fs/cgroup/systemd, for example by mounting it with 'mount -t
cgroup -o cpu,name=systemd cgroup /sys/fs/cgroup/systemd' (not with
system-manager as process 1), and things would appear to be OK:
It's tempting to
Someone:
I am trying to create one or multiple packages for Archlinux to
install nosh
This has come up several times with multiple people, now.
I have no Arch Linux machines, and I am entirely dependent from Arch
Linux people for the packaging part. As I already told one person back
in
Someone:
I haven't installed much else yet on the system but I tried the
sysstat package which gives me the following error:
preset: ERROR: sysstat: No such file or directory
I haven't yet investigated this problem. Sysstat seems to be part of
the Debconf enable/disable system, I'm
Guillermo:
> a) SIGTERM for reboot
> b) SIGUSR1 for halt
> c) SIGUSR2 for poweroff
> d) SIGINT for a programmable CTRL + ALT + Del action
> e) SIGWINCH for a programmable 'keyboard request' action
>
> nosh's system-manager supports e) via the 'kbrequest' target. But for
> compatibility reasons,
http://adrianchadd.blogspot.co.uk/2016/08/freebsd-on-tiny-system-whats-missing.html?showComment=1471236502051#c1305086913155850955
, Adrian Chadd:
We're using s6 at work, and it works out mostly ok. Mostly once you
get around the linuxisms, and the lack of sensible time code in it
(its
Gerrit Pape:
To me too this readiness IPC ideas and implementations look
over-engineered.
A good convention for service programs would be to functionally test
for services it needs very early on startup, and fail if dependencies
are not available. The service supervisor (any modern init
Laurent Bercot:
fds 6 and 7 are only used for UCSPI clients, which are a very minor
subset of the programs you'd want to use that mechanism with.
Laurent Bercot:
I don't want the caller to tell me "here's a bunch of fds, you sort
them out": that's just laziness.
Just so that everyone is
Simon McVittie:
This can already work. If you put XDG_RUNTIME_DIR in user programs'
environment, and arrange for your favourite service manager to make a
dbus-daemon (or something else that speaks the same protocol) listen
on $XDG_RUNTIME_DIR/bus before any user process would try to connect
Daniel Kahn Gillmor wrote:
So i'm hoping that it'll find a taker in one of these more
toolkit-style supervisor suites.
http://jdebp.eu./Softwares/nosh/#Features
socket services section
Laurent Bercot:
how does the daemon know what fd corresponds to what use?
In the wild, it's generally a for() loop over the passed-in descriptors
that checks each socket type. In the wild, only one of any type is
often the case.
"If AF_INET4 and SOCK_DGRAM, this must be my UDP4 socket."
Jonathan de Boyne Pollard:
What are these Linuxisms in s6? s6-linux-utils and s6-linux-init have
Linuxisms, obviously. But what Linuxisms does s6 have?
Adrian Chadd:
We just had a bunch of fun trying to get it to build right, [...]
Such as what, specifically?
Adrian Chadd:
[...] the uptime stuff really threw us.
It's unfair to lay such system time problems at s6's door. Systems whose
system clock jumps 46 years during system bootstrap don't get to blame
s6 for mad time gaps that appear in logs and service start time
records. There is a *lot* of
Adrian Chadd:
Sure, but I'm looking for something more generic than just devd. Like,
notifications about events like "default route is up" can be done by
sniffing the rtsock, but notifications like "ntpdate has updated the
date, we can now do crypto services" doesn't happen there right now.
Jan Olszak:
Command that fails:
s6-softlimit -c 1 pwd
# strace s6-softlimit -c 204800 pwd
...
prlimit64(0, RLIMIT_CORE, NULL, {rlim_cur=RLIM64_INFINITY,
rlim_max=RLIM64_INFINITY}) = 0
prlimit64(0, RLIMIT_CORE, {rlim_cur=200*1024, rlim_max=RLIM64_INFINITY}, NULL)
= 0
You seem to have
Otheus:
From systemd's viewpoint, the *service *is runsvdir, and not
runsvdir-start. The latter is simply a wrapper script for the former
and needed because of initttab's limitations. With systemd, a service
file can contain all the information in that script and more.
Similarly:
Guillermo:
I suppose the interesting suprise is that as consequence, when a
service definition gets 'imported' to nosh from a unit file (and this
covers pretty much everything in the nosh-bundles* binary
packages),the corresponding service gets placed in a cgroup of its own
when launched by
Martin "eto" Misuth:
I think Mr Jonathan de Boyne Pollard might be cooking, or even already
has, something similar in nosh.
Long since. (-: It was in version 1.0 .
Martin "eto" Misuth:
at some point I was interested in digging out whether systemd had
"subreapers&q
Daniel Kahn Gillmor:
Yet surely there are some user-wide services that don't need DISPLAY
at all, and would be happy to run per-user?
GNOME Terminal isn't one of them. Witness the behaviour of
gnome-terminal-server run as a service if it doesn't have a DISPLAY
environment variable:
Martin "eto" Misuth:
I personally am not so "hot" about this listening socket passing stuffs.
When you've had to deal with tens if not hundreds of different ways of
saying "listen on this IP address and port", you'll come around to the
idea of having a single tool that does this one job
Martin "eto" Misuth:
On my presonal box "user level" s6 /services subtrees are in
`.config/s6/host`
For comparison: ~/.config/service-bundles/services/ and
~/.config/service-bundles/targets/
Martin "eto" Misuth:
#!/bin/sh
exec mpd --no-daemon /usr/home/eto/.config/mpd/mpd.conf
Tip: In
Jonathan de Boyne Pollard:
One of the interesting developments over the past couple of decades is
how much the world has been influenced to come around to the
daemontools way of doing this. I've observed before, elsewhere, the
number of daemon programs, especially in the BSD worlds, that have
Jilles Tjoelker:
This should probably be fixed.
There's another more insidious bug hiding inside kevent() somewhere that
causes a kernel abend complaining about a sleeping thread holding a
non-sleepable lock. One needs to make fairly heavy use of kevent() in
order to trigger it, I believe,
Daniel Kahn Gillmor:
dbus-user-session supports at most one graphical session concurrently
... in order to avoid people encountering the very problem of
half-hearted and flawed implementations that I described.
Non-half-hearted implementations are the goal, however.
Read
Casper Ti. Vector:
But I do think the capability argument has its validity: chainloading
is, at this time, not well known to normal users, which is why many
systemd supporters compulsorily identify cgroup support with systemd
with few people opposing. Therefore I suggest to add some examples
Jean Louis:
So, placing user daemons into system supervision may not be the best
option, due to so many customization that have to be done for the
user, especially for GNU Emacs -- as one cannot know which programming
languages and their variables are required.
I just explained that these
Martin "eto" Misuth:
Point of tool is simple: it always runs marking itself as "subreaper",
thus any descendants who lose parent, that was running under it, will
get reparented (and their attached process subtrees as well) under
it's process.
Once "main", the important and original, child
Jonathan de Boyne Pollard:
To anyone running the service manager and bundles from nosh version
1.28 or later on Linux: You are encouraged to look at your control
group hierarchy, with a tool like "systemd-cgls /", with the "cgroup"
field of the ps command, or by simply
Jean Louis:
emacs --new-daemon=NAME
I have added a new per-user service for this to nosh, ready for version
1.30 . So one just has to start the per-user service manager
# system-control start user@jlouis.target
then start the emacs server
$ system-control --user start emacs
Bloody Thunderbird! Here's that again, I hope without the surprise
reformatting after pressing "send" this time:
The nosh package is now up to version 1.29.
* http://jdebp.eu./Softwares/nosh/
*
https://www.freebsd.org/news/status/report-2015-07-2015-09.html#The-nosh-Project
*
Casper Ti. Vector:
the docs are in tarballs on jdebp.eu
* http://jdebp.eu./Softwares/nosh/guide.html
Casper Ti. Vector:
one example for ulimit
An irony here is that the page *already contains* two entire sets of
examples that set memory resource limits, using daemontools,
daemontools-encore, freedt, perp, s6, and nosh tools.
Martin "eto" Misuth:
First, there are two major caveats,
There are actually three. They break scripting. For example: People
cannot use the GNOME Editor as $VISUAL or $EDITOR because one of the
things implicit in the $EDITOR/$VISUAL mechanism is that when the
program that has been invoked
Jonathan de Boyne Pollard:
In celebration of the forthcoming leap second, djbwares is now at
version 4.
* http://jdebp.eu./Softwares/djbwares/
* http://jdebp.info./Softwares/djbwares/
Jean Louis:
http://jdebp.info./Softwares/djbwares
is not working: "access denied" and I ins
Your goo.gl hyperlink on page 34 is to the old WWW site. (-:
Guillermo:
for some reason 'service-control --exit' doesn't unload a service that
is already in the 'stopped' state.
I'll look into it for 1.31. You won't see a fix in 1.30 because that is
coming out ... well ... now.
The nosh package is now up to version 1.30 .
* http://jdebp.eu./Softwares/nosh/
*
https://www.freebsd.org/news/status/report-2015-07-2015-09.html#The-nosh-Project
* http://jdebp.info./Softwares/nosh/
service bundles
---
As usual, there are more service bundles, including for the
Casper Ti. Vector:
resource control and [...] cgroup support can be easily implemented
with chainloading
I pointed at the nosh Guide back in December. The sharp-eyed will
notice the advent of a new command in the command list chapter. This is
a sneak preview of 1.31.
Martin "eto" Misuth:
- rxvt-unicode - uberterminal
- this thing can operate [...] daemon, when single process hosts all your
terminals
- benefits are [...]
Drawbacks are that it doesn't understand receiving the listening socket
as an already-open file descriptor, and by default it
djbwares is now at version 5.
* http://jdebp.eu./Softwares/djbwares/
* http://jdebp.info./Softwares/djbwares/
This contains some long-overdue changes: ip6.int has been replaced by ip6.arpa
in tinydns-data and dnscache, and rblsmtpd no longer falls back to using an RBL
that has been defunct for
Talking of Gentoo, Guillermo:
The Gentoo people have been inspired by Archnosh, but it looks like they could
benefit from your experience.
* https://wiki.gentoo.org/wiki/Nosh
I purge the directories of these from time to time, as I have just done again.
But they tend to very slowly accrue, for one reason or another. It's not a
major worry. Anyway, better that the archive have everything including some
harmless text editor temporary files than that it have one vital
"Immortal", a tool that is a "*nix cross-platform (OS agnostic) supervisor based
on daemontools & runit" according to its blurb, has just come up on Hacker News.
I mentioned M. Bercot.
* https://news.ycombinator.com/item?id=13994687
Guillermo:
>
> So, system-control has a new but undocumented 'is-service-manager-client'
> subcommand?
>
Yes. It's part of an incomplete to-do list item; and might change.
Suggestions are welcome. You can put them on the Supervision mailing list if
you like. Please bear in mind the design principles laid out in the Guide
http://jdebp.eu./Softwares/nosh/guide.html , though.
Bug reports and real world experiences are also welcome, and in fact more
interesting.
> Type=forking
No.
> StandardOutput=tty
No.
> RemainAfterExit=yes
No.
> SysVStartPriority=99
No.
You're a long-time daemontools user, you say. Why on Earth do you think that
Type=forking is right? Why on Earth do you think that good daemons fork and
exit parent? Why on Earth do you
Casper Ti. Vector:
>
> (Normally Jonathan would be replying to this point, but I still do not see
> him in this thread, so I rashly take this job ;)
>
Goodonyer. Thank you.
I have been distracted.
* https://github.com/neovim/neovim/pull/6816
https://github.com/neovim/neovim/pull/6816
I
Charles Duffy
> - Integration with the linux-only cgroups mechanism for managing CPU,
> memory, and I/O throughput limits
As you say, this is just an exercise in chain loading tools and conversion to
scripts that employ them.
* https://news.ycombinator.com/item?id=11846083
*
This week's little kerfuffle over systemd and the way that its mechanism to drop
superuser privileges works (see https://news.ycombinator.com/item?id=14681377
and the headlined bug report there) has led me to observe that whilst the doco
for nosh, s6, daemontools, and daemontools-encore all state
The nosh package is now up to version 1.34 .
* http://jdebp.eu./Softwares/nosh/
*
https://www.freebsd.org/news/status/report-2015-07-2015-09.html#The-nosh-Project
* http://jdebp.info./Softwares/nosh/
Once again, there are a few more service bundles. The most interesting ones in
this version are
Laurent Bercot:
> > "It's old software. Its last version is from 2014."
>
> Old? Let's see...
A more amusant counterexample is perhaps the Debian Almquist shell, put into
widespread use on Debian and Ubuntu a decade ago in order to speed up bootstrap.
M. Almquist first published it in May
Laurent Bercot:
> It is also true that it would benefit from closer maintenance.
> Gerrit Pape, runit's author, is still around and still reads this list,
> but is not as active as he was a few years ago (typically during
> runit development). Fortunately, there are not many feature requests.
Jorge Almeida:
> As said in the first mail, I need to redirect some targets to a ssh tunnel,
> and let everything else go its way. Rather than using a proxy, the solution
> seems obvious: [...]
... use a Proxy Auto-Configuration script, as that is the function of PAC
scripts.
*
https://github.com/davmac314/dinit/blob/master/doc/COMPARISON#L71
It's a shame that this gets a number of things wrong about several of the
systems.
Laurent Bercot:
s6-tcpserver doesn't have this bug. :P
Neither do tcp-socket-accept, nor
local-{stream,seqpacket}-socket-accept. (-:
Just for the Hell of it, I have patched the djbwares' tcpserver to have
if (0 != s) and if (1 != s) conditions, for version 7 whenever that will be.
DGSJ:
Well, Crtl+C doesn't work, [...]
It seems to be the time of year for this question. I just answered
another variant of it, complete with daemontools-style chain loading
tools. Read the further reading and other questions, too.
* https://unix.stackexchange.com/questions/410318/
*
For a wider readership:
>
> I recently had issues where Firefox and the SpaceFM file manager would
> hang when started. Apparently they were calling dbus-launch.
>
If they were calling dbus-launch, that means that they were unable to contact a
Desktop Bus broker and tried to run their own
The nosh package is now up to version 1.36 .
*
http://jdebp.eu./Softwares/nosh/
*
https://www.freebsd.org/news/status/report-2015-07-2015-09.html#The-nosh-Project
*
http://jdebp.info./Softwares/nosh/
More Java tools
This release comes with the |find-default-jvm| and
Warner Losh, FreeBSD and embedded systems developer, has just invented a
new shutdowngoal, in addition to the ones that we already know. In
addition to the conventional reset, power off, halt, and kexec goals; xe
has added a power-off-and-then-on-again goal. Xe has named it power
cycle, and
In case you weren't aware, programs can make use of a facility on Linux
to make their ps listings contain appropriate command-line arguments and
environment strings. There's also a similar kernel API on FreeBSD. This
is used by the built-ins in nosh to good effect, even more so in the
1 - 100 of 165 matches
Mail list logo