Otras lecturas

Otras lecturas

Estoy convirtiendo un archivo de estilo de inicio SysV en un archivo Systemd Unit y su bloque de sección de inicio se ve así:

### BEGIN INIT INFO
# Provides:          ifcheck 
# Required-Start:    $local_fs 
# Required-Stop:
# Should-Start:
# Should-Stop:
# Default-Start:     S
# Default-Stop:      
# Short-Description: Network interfaces check & replace
# Description:       Checks if the interfaces were corrupted or if the special section is missing. If so, a default version will be copied over.
### END INIT INFO

Sé que los niveles de ejecución 0-6 corresponden a varios objetivos de systemd:

╔══════════════════════╦═══════════════════╗
║ Run Level (SysVinit) ║  Systemd Target   ║
╠══════════════════════╬═══════════════════╣
│ Run level 0          │ poweroff.target   │
├──────────────────────┼───────────────────┤
│ Run level 1          │ rescue.target     │
├──────────────────────┼───────────────────┤
│ Run level 2          │ multi-user.target │
├──────────────────────┼───────────────────┤
│ Run level 3          │ multi-user.target │
├──────────────────────┼───────────────────┤
│ Run level 4          │ multi-user.target │
├──────────────────────┼───────────────────┤
│ Run level 5          │ graphical.target  │
├──────────────────────┼───────────────────┤
│ Run level 6          │ reboot.target     │
├──────────────────────┼───────────────────┤
│ Emergency            │ emergency.target  │
└──────────────────────┴───────────────────┘
(According to https://www.tecmint.com/change-runlevels-targets-in-systemd/ )

Pero nunca antes lo había visto Scomo un nivel de carrera. He vistoalgunas definiciones que dicen que es para un solo usuariomientrashay otros que lo definen como sinónimo de otros niveles de ejecucióny todavíaotros no tienen una definición concluyente.

Sé que la versión con la que estoy trabajando es probablemente laEspecificación básica estándar de Linuxporque inmediatamente después del bloque de información de inicio está el origen delfunciones de inicio lsb(Obtenido a través de . /lib/lsb/init-functions). Además, el sistema ejecuta Debian 8 Jessie.

¿Qué objetivo debo poner en el archivo de unidad systemd equivalente para el nivel de ejecución S?

Respuesta1

Sno tiene correspondencia directa en systemd. El systemd-sysv-generatorprograma no maneja dichos rcguiones de Van Smoorenburg.

Debiansolía teneruna versión parcheada de ese programa que incluía un rcscript que se usaba Sdentro de una unidad de servicio sin dependencias predeterminadas y que era buscado por sysinit.target. Esto fue imperfecto, pero entoncestodoEl funcionamiento de systemd-sysv-generatores imperfecto, porque no existe una forma mecánica única de traducir rclos guiones de Van Smoorenburg.

La gente de Debian systemd eliminó el parche en julio de 2016, cuando creyeron que todos los rcscripts de van Smoorenburg en Debian que utilizaban Shabían sido reemplazados por unidades de servicio adecuadas. El tuyo parece ser de cosecha propia.

En este caso, es mejor que te olvides por completo del Snivel de ejecución. Mi suposición fundamentada, basada únicamente en la descripción, es que lo que realmente debería fabricar es una unidad de servicio que sea:

Dependencias predeterminadas = no
Después = local-fs.target
Antes = red-pre.objetivo
Quiere = red-pre.objetivo
Y eso es Wanted-Byalgo adecuado, posiblemente basic.target.

Dependiendo de lo que realmente haga su servicio, ese pedido posterior local-fs.targetpuede ser excesivo. Pero eso es algo que sólo tú puedes determinar.

Otras lecturas

información relacionada