sysV 서비스에 대한 시스템 래퍼 스크립트를 제거하고 단위 파일을 사용하는 방법은 무엇입니까?

sysV 서비스에 대한 시스템 래퍼 스크립트를 제거하고 단위 파일을 사용하는 방법은 무엇입니까?

systemd이전 sysV 서비스에 대한 래퍼 스크립트를 구성 해제하거나 제거하려고 합니다 . 이 래퍼는 Debian 패키지에서 제공되므로 직접 제거할 수 없습니다.

래퍼는 아티팩트로 표시되며 다음과 같이 나열됩니다."생성하다":

$ systemctl list-unit-files | grep -i -E 'rng|rand'
rng-tools.service                      generated
systemd-random-seed.service            static
urandom.service                        static

systemd이를 대체하기 위해 새로운 서비스를 추가했습니다 .시스템 단위 파일 생성 및 수정:

# touch /etc/systemd/system/rng-tools.service
# chmod 664 /etc/systemd/system/rng-tools.service
# emacs /etc/systemd/system/rng-tools.service
<edit file>

그러나 새 서비스 파일을 활성화하려고 하면 이전 sysV 스크립트가 사용됩니다.

# systemctl enable rng-tools
Synchronizing state of rng-tools.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable rng-tools

검색 결과는 0회이며 이전 패키지는 삭제될 수 있습니다. 래퍼 스크립트를 만드는 등의 히트가 많이 발생합니다. 하지만 systemd데이터베이스에서 삭제하는 방법에 대한 정보를 찾지 못했습니다 .

sysV 서비스에 대한 systemd 래퍼 스크립트를 구성 해제하거나 제거하는 방법은 무엇입니까?


스티븐이 제안한 후에 ​​이런 일이 일어났습니다. rng-tools.service사용 중인 새 제품 :

$ systemctl status rng-tools
● rng-tools.service - Entropy daemon for /dev/random using a hardware RNG
   Loaded: loaded (/etc/systemd/system/rng-tools.service; enabled; vendor preset
   Active: failed (Result: exit-code) since Mon 2018-10-15 07:19:32 EDT; 20min a
 Main PID: 674 (code=exited, status=1/FAILURE)

그리고:

# journalctl -b -u rng-tools.service
-- Logs begin at Mon 2018-10-15 07:19:29 EDT, end at Mon 2018-10-15 07:49:13 EDT. --
Oct 15 07:19:31 beaglebone systemd[1]: Started Entropy daemon for /dev/random using a hardware RNG.
Oct 15 07:19:31 beaglebone rngd[674]: can't open /dev/hwrng: No such file or directory
Oct 15 07:19:32 beaglebone systemd[1]: rng-tools.service: Main process exited, code=exited, status=1/FAILURE
Oct 15 07:19:32 beaglebone systemd[1]: rng-tools.service: Unit entered failed state.
Oct 15 07:19:32 beaglebone systemd[1]: rng-tools.service: Failed with result 'exit-code'.

그리고:

# dd if=/dev/hwrng count=16 bs=1
▒▒▒▒ȿ▒3▒▒ ▒▒#16+0 records in
16+0 records out
16 bytes (16 B) copied, 0.00942799 s, 1.7 kB/s

완전성을 위해 이것은 새로운 것입니다 rng-tools.service:

# cat /etc/systemd/system/rng-tools.service
# ...

[Unit]
Description=Entropy daemon for /dev/random using a hardware RNG
After=syslog.target
Requires=syslog.target

[Service]
Type=simple
ExecStart=/usr/sbin/rngd -r /dev/hwrng -f

[Install]
WantedBy=basic.target

답변1

Synchronizing state of rng-tools.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable rng-tools

이는 systemd가 -style init 스크립트가 있다는 것을 "인식" sysvinit하고 서비스 상태를 고려할 때 이를 고려해야 함을 의미합니다 rng-tools. 그렇다고 그럴 것이라는 뜻은 아니다사용서비스 관리를 위한 초기화 스크립트입니다.

init 스크립트와 유닛 파일이 모두 존재하는 경우 systemd는 후자를 사용합니다(적어도 서비스가 실행되고 있지 않을 때).

를 실행하면 어떤 파일이 서비스를 시작하는 데 사용되었는지 확인할 수 있습니다 systemctl status. "Loaded" 줄에는 어떤 스크립트가 사용되었는지 표시됩니다. 예를 들어, 다음은 systemd 유닛과 init 스크립트를 모두 포함하는 서비스입니다.

● infnoise.service - Wayward Geek InfNoise TRNG driver
   Loaded: loaded (/lib/systemd/system/infnoise.service; enabled; vendor preset: enabled)

이것은 init 스크립트만 있는 서비스입니다.

● sensord.service - LSB: lm-sensors daemon
   Loaded: loaded (/etc/init.d/sensord; generated; vendor preset: enabled)

귀하의 서비스를 확인하세요~해야 한다Show systemd가 새 장치를 사용하고 있습니다.

다른 모든 방법이 실패하면할 수 있는delete /etc/init.d/rng-tools: 구성 파일로 추적되어야 하며 dpkg삭제되었음을 알리고 패키지 업그레이드 시 복원하지 않습니다. /etc패키지가 파일을 설치할 수 있지만 패키지 시스템이 아닌 시스템 관리자에 속합니다.

관련 정보