Start Scripts incompatible with systemd in OEL9 (252) #15077
Unanswered
dnorthup-ums
asked this question in
Q&A
Replies: 1 comment 3 replies
-
|
We don't ship a "stock systemd.service unit", so no idea what you're referring to. We deploy Jetty under Ubuntu as a I also don't understand your reference to I'm sorry you wasted those 6 hours, but Jetty works fine with This is the |
Beta Was this translation helpful? Give feedback.
3 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
I am not asking for support for OEL9. It just happens to be our supported server platform at $dayjob.
Jetty version(s)
12.1.9
Jetty Environment
ee11
(doesn't get far enough to matter)
HTTP version
Whatever Apache HTTPd wants to use for reverse proxy. Unrelated to what I'm reporting.
Java version/vendor
Corretto 21
OS type/version
OEL9
Description
I have tried the stock systemd.service unit, but the scripts in /etc/rc.d/init.d tends to cause problems as systemd tries to create SYSVINIT compatibility units, gives up, and pukes all over the place. (I'm actually symlinking to the real ones from there, as updating Jetty and having the wrong startup script is damnation nobody should inflict upon themselves. Thankfully, when the systemd SYSVINIT compatibility is short-circuited by using actual SYSVINIT, started by systemd, then it works ok-ish.)
I took the stock systemd.service unit and attempted to modify it directly to run the actual start script. It refuses to run claiming "Permission denied" (SELINUX perhaps?). (It does the same thing if I use a symlink.)
I took the stock systemd.service unit and pointed it at a wrapper of jetty.sh in /usr/local/bin. Jetty starts ok, but then systemd kills it because it was started in a way that systemd doesn't understand and it decides that the running program isn't supposed to be there.
This happens with and without systemd using the same PID file as Jetty itself.
This happens with all of the "Type=" values that make any sense.
May I gently suggest that ignoring systemd and using a complicated startup script is not working out in a long-term sustainable way? Eventually
chkconfigwill not be available on servers, or it will start doing undesired things.How to reproduce?
Put Jetty in any of the normal places, EG: JETTY_BASE=
/opt/jetty; JETTY_HOME=/opt/jetty-dist(symlink to actual version directory)Attempt to use the stock jetty.service file. Observe errors causing failures when attempting to let it start via files in /etc/rc.d/init.d (literal or symlink).
Modify the systemd unit in whatever way seems like a good idea. Stumble upon something that doesn't immediately puke an error. Find that systemd started Jetty just fine and then promptly killed it.
I hate to be a smartass, but this took up more than 6 hours of $dayjob time across several days. The only sane conclusion I'm left with is that at some point either Jetty will work properly with systemd (as much as I hate it, and boy do I—servers are not laptops) or we'll have to abandon using Jetty completely at $dayjob.
I may have time to come back and add some sanitized console / log output, but I don't know yet.
Beta Was this translation helpful? Give feedback.
All reactions