Skip to main content
Server & DevOpsOctober 19, 20263 min read

Ubuntu 26.10 Removes SysV Init Script Support. Check Yours

Get technical support

Patched, monitored, restored on a schedule

Ubuntu 26.10 shipped on October 15 with systemd 261.3, which no longer runs old SysV init scripts. It also completes the move to Rust coreutils and changes several server defaults, so it is worth a read before the next LTS.

The Release

Canonical released Ubuntu 26.10, codenamed Stonking Stingray, on October 15. It is an interim release with nine months of support, until July 2027, so production servers are better left on 26.04 LTS. The reason to read these notes now is that changes usually show up in an interim release before they reach an LTS, and a few of these touch servers directly.

SysV Init Scripts No Longer Run

systemd is at 261.3, and support for legacy System V init scripts has been removed. Until now a script in /etc/init.d/ still worked, because systemd generated a unit for it at boot. On 26.10 that no longer happens, so a service that only ships an init script will not start.

The services at risk are usually old vendor agents and in-house daemons. On a current server you can see which services still lean on the compatibility layer, because systemd writes the units it generates from init scripts to a runtime directory.

ls /run/systemd/generator.late/*.service 2>/dev/null

Each file listed there is a service that needs a native systemd unit before the server moves to a release without the compatibility layer.

Coreutils Are Now Rust

The default core utilities now run entirely on the Rust-based uutils implementation, and cp, mv and rm have moved over as well. Most scripts will not notice. Scripts that depend on unusual flags or on the exact wording of error messages deserve a test run first.

Server Defaults That Changed

  • OpenSSH 10.5 is split into openssh and openssh-gssapi. Fresh installs get the version without GSSAPI, and upgrades that use Kerberos are switched to the GSSAPI packages automatically.
  • HAProxy 3.4.2 changes the default load-balancing algorithm to random, so a backend without an explicit balance line will spread traffic differently after an upgrade. Some deprecated directives were removed, and duplicate section names are now errors.
  • The php-fpm unit for PHP 8.5.9 no longer sets PrivateTmp=true.
  • OpenSSL 4 is in use, at 4.0.3, and packages such as Apache, Squid, PHP and SSSD were rebuilt or adjusted for it.

The HAProxy change takes one command to check.

grep -n "balance" /etc/haproxy/haproxy.cfg

Post-Quantum Ready Package Signing

Canonical says 26.10 delivers post-quantum ready package signing by replacing GnuPG with Sequoia PGP to verify APT repository signatures. Nothing changes in how you use apt day to day. It is one more step in a move to post-quantum cryptography that already reaches your visitors' browsers.

Known Upgrade Issues

Two documented issues are worth knowing before anyone runs an upgrade. Do not purge an OpenSSH package left in the "rc" state until the fix for bug LP #2169738 is released, since purging can remove files the other package needs. A dangling /lib32 symlink can also stop the upgrade while base-files is being installed.

Keeping servers on supported releases, and catching changes like these before an upgrade instead of after, is what our server management service does day to day.

Sources: Ubuntu 26.10 release notes, Canonical announcement

Or read how we handle it in Servers Management.