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
패키지가 파일을 설치할 수 있지만 패키지 시스템이 아닌 시스템 관리자에 속합니다.