systemd에서 로그인을 요구하는 대신 tty에서 스크립트를 어떻게 시작합니까?

systemd에서 로그인을 요구하는 대신 tty에서 스크립트를 어떻게 시작합니까?

로그인을 요청하지 않고 tty1에서 스크립트를 시작하고 인쇄해야 합니다. 다음으로 연결:systemd를 사용하여 tty 로그인을 요구하기 전에 /proc/cmdline을 구문 분석하는 방법

간단한 bash 스크립트를 시작하는 서비스를 만들려고 합니다.

#!/bin/bash
echo "trying to print this on screen before tty login"
read ok

그리고 서비스:

[Unit]
Description=Before tty login script launcher

[Service]
Type=simple
ExecStart=/bin/bash -c "/opt/starter.sh"

[Install]
WantedBy=getty.target

이후

cd /lib/systemd/system ; ln -s ./starter.service ./getty.target.wants/starter.service

시작 시 스크립트를 프롬프트하지 않고 tty 로그인을 계속 실행합니다. 스크립트에 루트 액세스가 필요하기 때문에 로그인 후 스크립트를 시작하고 싶지 않습니다. 따라서 누군가 CTRL+C를 누르면 루트 액세스 권한을 갖게 됩니다.

답변1

이것은 작동합니다:

[Unit]
Description=Script starter
After=getty.target
[email protected]

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/opt/starter.sh
StandardInput=tty-force
StandardOutput=inherit
StandardError=inherit

[Install]
WantedBy=graphical.target

도움을 주신 #systemd "grawity" 및 "zdzichu"에게 감사드립니다.

관련 정보