시작 작업을 시스템 서비스로 변환하는 방법은 무엇입니까?

시작 작업을 시스템 서비스로 변환하는 방법은 무엇입니까?

나는 다음과 같은 신생 기업을 운영하고 있습니다.

# hwclock - adjust system clock and timezone
#
# The hwclock task adjusts the system clock when the hardware clock is
# set to localtime (e.g. when dual-booting with Windows), and also
# ensures that the system timezone is set so that timestamps are written
# to FAT devices.

description     "adjust system clock and timezone"

start on starting mountall

task

script
    exec hwclock --systz --utc --noadjfile
end script

systemd 서비스로 전환하고 싶습니다.

systemd에서는 어떻게 구현해야 합니까 start on starting mountall?

아래와 같이 systemd 서비스를 생성했는데 어떻게 해야할지 모르겠습니다 start on starting mountall.

[Unit]
Description=hwclock
After=
Before=

[Service]
ExecStart=/sbin/hwclock --systz --utc --noadjfile

답변1

다음 줄이 필요합니다.

Requires=
After=

여기에 명시된 바와 같이:

Requires=: 이 지시문은 이 장치가 본질적으로 의존하는 모든 장치를 나열합니다. 현재 장치가 이미 활성화된 경우 여기에 나열된 장치도 성공적으로 활성화되어야 합니다. 그렇지 않으면 장치가 실패합니다. 기본적으로 이러한 장치는 현재 장치와 병렬로 시작됩니다.

After=: 이 지시문에 나열된 장치는 현재 장치가 시작되기 전에 시작됩니다. 이는 필요한 경우 위 지시문을 통해 설정해야 하는 종속성을 의미하지 않습니다.

구조는 다음과 같아야 합니다.

[Unit]
Description=hwclock
Requires= # mountall most happen
After= # mountall should have started before hwclock run

[Service]
Type=oneshort
ExecStart=/sbin/hwclock --systz --utc --noadjfile

~에서여기:

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Upstart stanza | systemd unit file directive | systemd unit file section
               |                             |
-------------------------------------------------------------------------
start on       |    Wants, Requires, Before, |
               |    After                    |  Unit 
--------------------------------------------------------------------------

참고: 이는 Ubuntu 시스템용이지만 유사해야 합니다. 바라보다:https://www.freedesktop.org/software/systemd/man/systemd.unit.html반품.

관련 정보