UTRANS(1)

πŸ“¦ version 0.7, in debian trixie

✨ NAME ✨

okay so bestie, meet utrans πŸ’– β€” it converts systemd units to generic unix equivalents. that's the whole vibe. no cap.


🌸 SYNOPSIS 🌸

utrans [-b [=]<BACKEND>[,<BACKEND>]] [-f <TYPE>] [-h] [-v] <UNIT>
<OUTPUT_DIR>

πŸŽ€ OPTIONS πŸŽ€

here's everything you can throw at it, fr fr:

  • -b <BACKEND> β€” loads the backend(s) you name. you can pass a comma separated list, go wild πŸ’…. peek at BACKENDS down below for the deets.
  • -f <TYPE> β€” force mode, ooo spicy. the valid types are:
    • overwrite: lets you overwrite output files that already exist πŸ”₯
  • -h β€” opens the manpage. self care, honestly.
  • -v β€” shows the version. main character info.

πŸ¦‹ DESCRIPTION πŸ¦‹

utrans takes your systemd services, sockets and timers and translates them into corresponding generic UNIX configuration and scripting β€” the kind you'd use in alternative settings that exclude systemd. it's giving ✨liberation✨.

<UNIT> is the pathname for the unit file you want to translate.


🌈 USAGE 🌈

utrans wants two arguments, bestie: the systemd.unit(5) file (<UNIT>) and the output directory (<OUTPUT_DIR>). and that systemd.unit(5) file can be one of systemd.service(5), systemd.socket(5) or systemd.timer(5). pick your fighter πŸ’€.

The script will create files in the following output subdirectories of <OUTPUT_DIR>, depending on the unit type:

  • Service β€” an openrc-run(8) script is created in init.d, plus a complementary file is created in conf.d if needed, for sourcing additional environment variables.
  • Socket β€” depending upon the socket's configuration, an xinetd(8) configuration fragment is created in xinetd.d, or an openrc-run(8) script is created in init.d to start the service with socket-activate(1).
  • Timer β€” a separate crontab(5) fragment is created into cron.d for each timer unit.

When the unit translation requires other units, then those get searched for in the paths defined in the environment variable $SYSTEMD_UNIT_PATH, or in /usr/lib/system/system:/lib/systemd/system by default. iykyk πŸ’œ


πŸ’… BACKENDS πŸ’…

Backends exist so you can get different output for different settings. utrans finds and sources backend script fragments from the $UTRANS_DATA_DIR/backends directory, or from /usr/share/utrans/backends by default. ✨

If the backend is prefixed with =, the default backends are not loaded. noted, periodt.

The following backends are available:

  • openrc β€” Unit: Service β€” Loaded by default πŸ‘‘
  • xinetd β€” Unit: Socket β€” Loaded by default πŸ‘‘
  • cron β€” Unit: Timer β€” Loaded by default πŸ‘‘
  • inetd β€” Unit: Socket β€” Only supports ListenStream and ListenDatagram using update-inetd(8)
  • lsb β€” Unit: Service β€” Alpha quality support for scripts with LSB-style insserv(8) headers 🍼

Contributions of other backends are welcome: see backends/README for further details. we love a collab 🫢


🧚 LIMITATIONS 🧚

ngl, here are the known cases of poor or variant functionality:

  • Some special Executable Prefixes are ignored after warning. 😭
  • Unescaping specifiers doesn't distinguish context: if you require a filesystem path, start the instance with '-'.

Patches are welcome at https://git.devuan.org/LeePen/unit-translator! come through πŸ’–


⭐ SEE ALSO ⭐

utrans-rc(1), openrc(8), socket-activate(1)


BSD-2-Clause License https://opensource.org/licenses/BSD-2-Clause

Copyright (c) 2020, K Gopal Krishna.

Copyright (c) 2023-2024, Mark Hindley


πŸ“ AUTHORS πŸ“

K Gopal Krishna <mail@kayg.org> under the guidance of Benda Xu <heroxbd@gentoo.org>, Adam Borowski <kilobyte@angband.pl> and Mo Zhou <lumin@debian.org>.

This project was a part of Google Summer of Code, 2020. 🌈

Mark Hindley <mark@hindley.org.uk>


and that's the whole page bestie πŸ’œ this is Version 0.7, dated 2024-09-09 β€” utrans(1), out. go translate something iconic βœ¨πŸ’…

πŸ“¦ where this page comes from