Comments (3)
- Don't build four tarballs by default. Make no debug linux the default, and check environment variables for build the portable or debug versions. Also, document the differences between these versions.
When I created this project, It was thought to cover not only docker images but a wider range of linux distros using a common s6-based init system. I think this is no longer true and it's really focused on docker so probably It's enough with s6-overlay-portable
and s6-overlay-portable-dbg
. I need time to think about that but probably we'll be releasing just one tarball. It'll be easier to make a choice.
A far better generic init system for linux distros is being written see this discussion by Olivier Brunel & Laurent Bercot:
http://www.mail-archive.com/[email protected]/msg00594.html
- Don't include all s6 utilities by default, only the subset actually used by the init scripts.
We're already doing that, s6-portable
includes required binaries to get a s6-based init system up and running.
- It's a bit confusing that you're bringing in a package from your other skaware-builder repo. I'm assuming this is just the s6 source? Could you pull it from an official location instead?
No. It's not s6
source. It's a repo for retrieving & building & publishing s6
tools including execline
. It'll publish statically linked binaries (zero-dependencies), ideal for distribution.
- Why does /init wrap /etc/s6/init/init-stage1? It's an extra layer of indirection, can this be replaced with a symlink?
No. Symlinks don't work very well when it comes to packaging into a tarball.
- The flow from /etc/s6/init/init-stage1 -> /etc/s6/init/init-{catchall,no-catchall}/init-stage1 -> /etc/s6/init/init-{catchall,no-catchall}/init-stage2 -> /etc/s6/init/init-stage1 is confusing. Perhaps the middle steps could renamed stage1-post and stage2-pre, or conditionally imported into the main scripts?
Nope. I wanted to exist both versions explicitly because they are quite different. They are "conditionally imported" already using S6_LOGGING
.
- What does the "vital fifo" /var/run/s6/services/s6-fdholderd/supervise/control do?
These are really interesting readings, they will help you understanding why that "vital fifo" is so vital:
- Why are some services in /etc/s6/services and others in /etc/services.d? Can they be merged to a single location?
/etc/s6/services
are the ones provided by s6
, I call them "system services". /etc/services.d
instead is the place where you should put your own services, that ones are called "user services". Both kind of services are merged into the runtime services folder which is located in /var/run/s6/services
, that folder is guaranteed to be read/write. The reason of having two different services folder is because probably user controlled services wants to use system services. Take a look to this example:
- I assume no-catch-all is inaccurately named, and actually does catch all, but logs everything to stdout/stderr?
haha. no-catch-all
doesn't mean don't catch all, it means don't use catch-all
logger.
- I'm going to attempt to boil down your scripts to the simplest possible version (mentioned this on the mailing list). I'd really appreciate it if you could review them when I'm done!
Writing a custom and rock-solid init process is an art. These init scripts were mostly written by Laurent Bercot (@skarnet) who really, really, really knows and understands how everything works under the hood. So I'll recommend you to not to do so, because I think they are already the simplest they can be!
- Why is only init-stage2-redirfd broken out into its own separate file? Either all of the sections of stage2 should broken out, or none.
Because it's not easy to conditionally change the flow of a script written in execline:
http://www.mail-archive.com/[email protected]/msg00310.html
- Could init-stage3 be moved to .s6-svscan/finish?
Yes but in order to keep everything organized I prefer to create a direct call to .s6-svscan/finish
.
I appreciate your comments, expect a FAQ section in the README and some comments about release tarballs.
from s6-overlay.
On Tue, Apr 21, 2015 at 8:05 AM, Gorka Lerchundi Osa <
[email protected]> wrote:
this is no longer true and it's really focused on docker so probably It's
enough with s6-overlay-portable and s6-overlay-portable-dbg. I need time
to think about that but probably we'll be releasing just one
May I suggest a rename? Here are some options:
# docker
s6-overlay-portable --> s6-overlay-docker
s6-overlay-portable --> s6-overlay-dkr
# generic
s6-overlay-portable --> s6-overlay-min
s6-overlay-portable --> s6-overlay-mini
s6-overlay-portable --> s6-overlay-minbase
- The flow from /etc/s6/init/init-stage1 ->
/etc/s6/init/init-{catchall,no-catchall}/init-stage1 -> /etc/s6/init/init-
Nope. I wanted to exist both versions explicitly because they are quite
different. They are "conditionally imported" already using S6_LOGGING.
- I assume no-catch-all is inaccurately named, and actually does catch
all, but logs everything to stdout/stderr?haha. no-catch-all doesn't mean don't catch all, it means don't use
catch-all logger.& here. Perhaps a rename:
catch-all
---> s6-logging
and s6-no-logging
.
To make it more consistent with the renamed ENV variable S6_LOGGING
. It
only matters for people who look inside the code.
from s6-overlay.
Yes, I'm thinking on releasing just two tarballs: s6-overlay
& s6-overlay-dbg
this will avoid any confusion.
Internals should be kept as clean as possible and because s6 literature references this as catch-all logger (here & here) i'm not gonna change it.
but thanks anyway!
from s6-overlay.
Related Issues (20)
- systemd notify service conversion exmaple HOT 4
- s6-notifyoncheck: fatal: s6-supervise not running. HOT 3
- Installing S6 on official php-fpm container shows no log output from S6 HOT 5
- Issue with s6-overlay in Cattr project when deployed on Kubernetes HOT 6
- `UID not set` error HOT 10
- Question: pass args to the underlying service HOT 6
- s6-overlay v3 only sends SIGTERM to `/etc/services.d` after `S6_SERVICES_GRACETIME` HOT 8
- Setting S6_READ_ONLY_ROOT does not copy `/etc` to `/run/s6/etc` HOT 3
- Service is started, but reported as "normally down", seemingly by default HOT 11
- 3.1.6.1 hangs at the very end of shutdown for more than a minute HOT 3
- In some rare occasions s6-overlay hangs at shutdown for undefined amount of time HOT 4
- Using s6-overlay with ECS Exec HOT 8
- How to create something similar like cont-init if this one is deprecated ? HOT 3
- Best practice for redirecting output from app1 to app2 HOT 5
- Problem using S6_STAGE2_HOOK to run shell script HOT 2
- s6-linux-init: warning: parent wrote to fd 3! HOT 9
- How to read ENV variables from a file for the main process (defined in CMD) HOT 4
- Shutdown container during s6-rc startup leads to deadlock HOT 3
- finish script does not receive system.exit code but 0 HOT 33
- Cannot make Log to stdout work with s6-overlay 3.1.6.2 (no bug, just looking for some guidance/help). HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from s6-overlay.