Forum Linux.redhat Script killed par getty ?

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
0
28
jan.
2021

Bonjour,

Je souhaite lancer un script avant le prompt de login. J'ai donc créé et activé un service (dummy.service ci dessous) . Il se lance nickel, mais au bout de quelques secondes il est tué et le prompt se lance. Je précise que le script n'a aucune raison de planter. D'ailleurs si je fais un whiptail infobox dedans, celui-ci se lance bien et tout plante pareil sans que je n'ai appuyé sur "OK".

Le script affiche que je suis root sur tty1, et le prompt qui me casse les pieds est aussi sur tty1. Tous les autres tty sont désactivés

Une idée? Une piste?

[Unit]
Description=Script starter
Conflicts=getty@tty1.service
After=systemd-user-sessions.service plymouth-quit-wait.service getty-pre.target
After=rc-local.service
Before=getty.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/opt/test.sh
StandardInput=tty-force
StandardOutput=inherit
StandardError=journal
TTYPath=/dev/tty1
TTYReset=yes
TTYHangup=yes
TTYVTDisallocate=yes

[Install]
WantedBy=multi-user.target
DefaultInstance=tty1
  • # timeout par defaut

    Posté par  (site web personnel) . Évalué à 1.

    La documentation sur le services (man systemd.service) indique l'existence des options TimeoutSec / TimeoutStartSec / TimeoutStopSec avec des valeurs par defaut DefaultTimeoutStartSec / DefaultTimeoutStopSec ( dont la doc est consultable par "man systemd-system.conf" ). La valeur par défaut est de 90 secondes.

    • [^] # Re: timeout par defaut

      Posté par  . Évalué à 1.

      Le script est killé bien avant les 90s, je dirais une ou deux secondes.
      J'ai surchargé les valeurs par défaut histoire de vérifier. Aucun changement…

  • # aucune idee

    Posté par  . Évalué à 1.

    Bonjour.
    Au vu des informations fournies (et de mes maigres connaissances), aucune idee sue ce qui foire.
    Toutefois, au risque de proferer une enormite, la solution a ton probleme ne serai-elle pas d'avoir un getty@tty1.service personnalise avec ton script en premier ExecStart ?

    ++
    Gi)

  • # je suis pas expert en systemd mais ...

    Posté par  . Évalué à 2.

    Conflicts=getty@tty1.service

    du coup, quand getty se lance, possible qu'il tue ton service.

    De plus

    After=rc-local.service
    Before=getty.target

    il me semble que rc-local se lance en tout dernier,
    donc comment lancer ton script APRES le dernier, mais AVANT le getty ?

    • [^] # Re: je suis pas expert en systemd mais ...

      Posté par  . Évalué à 1.

      Je pense que c'est la bonne piste que que quand getty se lance il tue mon service. Mais comment empêcher le prompt de se lancer sur tty1? Telle est alors la question…

  • # mais pourquoi ?

    Posté par  . Évalué à 0.

    mais, quel intérêt de charger ainsi un TTY ?

    Le script affiche que je suis root sur tty1

    a priori ?
    a priori, non. Avant connexion, personne n'est qui que ce soit sur un TTY, root ou user.*
    et si ça doit être su après connexion, alors c'est le boulot du PROMPT, ou d'une indication dans .bashrc qui dira qui est connecté.

    --
    * seul règne le curseur.

    Loué soit le curseur !

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.