시스템이 처음으로 서비스를 시작하고 시스템을 다시 시작합니다.

시스템이 처음으로 서비스를 시작하고 시스템을 다시 시작합니다.

저는 Debian 사전 설정을 사용하여 "기본" Linux OS를 구축하고 있습니다. 여기서는 장치별 설정, 즉 호스트 이름을 지정하기 위해 처음 부팅할 때 실행되는 "firstboot.service"를 만들었습니다. 각 장치에서 프로비저닝을 실행하는 대신 clonezilla를 통해 기본 이미지를 키오스크에 배포합니다.

첫 번째 부팅을 ConditionFirstBoot=true로 강제하기 위해 Clonezille 이미지를 생성하기 전 마지막 단계에서 /etc/machine-id 파일을 삭제했습니다.

사용자 정의가 완료된 후 첫 번째 시작 스크립트에서 키오스크를 자동으로 다시 시작하려면 어떻게 해야 합니까? 이 작업을 수행해야 사용자 정의(예: 호스트 이름)가 다시 시작될 때까지 lightdm이 자동으로 로그인하지 않습니다.

강제 재시작을 시도했지만 작동하지 않고 오류가 발생합니다.

첫 번째 시작 스크립트에서 다시 시작을 수행하는 방법은 무엇입니까?

Firstboot.service 콘텐츠/lib/systemd/system/firstboot.service

[Unit]
Description=FirstBootSetup
ConditionFirstBoot=true

[Service]
Type=idle
RemainAfterExit=yes
ExecStart=/bin/bash /root/firstboot.bash

[Install]
WantedBy=multi-user.target

firstboot.service /root/firstboot.bash에 의해 실행되는 스크립트

systemd-machine-id-setup
hostname "RANDOM"

if [ -f /etc/machine-id ]; then
  systemctl --force --force reboot
endif

systemctl 상태 첫 시작

systemctl status firstboot
firstboot.service - FirstBootSetup
Loaded: loaded (/lib/systemd/system/firstboot.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Thu 2019-02-07 11:41:45 AEST; 1h 00min ago
Process: 562 ExecStart=/bin/bash /root/firstboot.bash (code=exited, status=2)
 Main PID: 562 (code=exited, status=2)

답변1

쉘 스크립트의 구문이 올바르지 않고 쉘이 명령을 전혀 실행하지 않는 것으로 나타났습니다. 질문 댓글에서 언급했듯이, 그래야 하지만 fi실제로는 그렇습니다 endif.

관련 정보