systemd-sysv-generator
저는 sysv 기반 시스템을 systemd(CentOS 6 -> 7)로 업그레이드하고 있으며 /etc/init.d 아래에 여전히 스크립트가 있는 일부 서비스를 실행 하고 싶습니다 .
문제는 /etc/init.d 아래의 일부 파일이 실제로 보조 파티션에 있는 파일에 대한 소프트 링크라는 것입니다.
실행할 때 이 파티션은 아직 마운트되지 않은 것으로 보이며 systemd-sysv-generator
로그에 표시되는 것은 생성기 스크립트의 "해당 파일 또는 디렉터리 없음" 오류뿐입니다. 시스템 문서에 따르면 발전기는 "초기 시동"이고 /etc/fstab 처리는 나중에 발생합니다.
내가 해야 할 일은 어떻게든 initramfs나 커널이 보조 드라이브를 마운트하도록 만드는 것인데 이것이 가능한지는 모르겠습니다. 응답이것그리고이것이러한 질문은 그다지 고무적이지 않으며 이것이 적어도 비정통적인 접근 방식임을 나타내는 것 같습니다.
또 다른 옵션은 드라이브를 설치한 후 생성기를 다시 실행하는 것일 수 있지만 어떻게 해야 할지, 말하자면 "너무 늦어" 서비스가 생성되지만 더 이상 시작되지 않는지 모르겠습니다.
어떻게 해야 합니까?
편집: 좀 더 구체적으로 설명하자면 내 루트 파티션이 있고 /dev/sda1
일반적 /dev/sda2
으로 /secondary
. /etc/init.d/myservice
에 대한 심볼릭 링크입니다 /secondary/myservice
. 이것은 잘 작동했지만 위에서 언급한 이유로 systemd에서는 작동이 중지되었습니다.
답변1
시간을 내어 systemd
기존 서비스에 대한 올바른 ".service" 파일을 한 번 생성하겠습니다. 이렇게 하면 시스템 전체가 단순화되고 부팅 순서 문제가 해결되며 나중에 sysV->systemd 전환이 제거됩니다.
systemd
이전 서비스가 제3자에 의해 제공되는 경우 실행 중인 이전 버전에 쉽게 적용할 수 있는 최신 버전의 .service 파일이 출시되었음을 알 수 있습니다 .
또 다른 옵션은 단순히 두 번째 파티션의 init 스크립트를 부팅 파티션으로 복사하는 것입니다. 변경 사항이 있을 때 파일을 두 번째 위치에 복사하도록 향후 관리자에게 알리기 위해 파일에 설명을 추가합니다.
답변2
어떤 작업을 수행하기 전에 systemd에서 일부 파티션을 강제로 마운트하도록 합니다.
usr
이를 [보조 파일 시스템]처럼 취급하면, 즉 initramfs에 마운트하면 작동합니다. 분명히 네트워크를 설정하려면 initramfs가 필요합니다. initramfs 전환은 데몬 다시 로드와 동일하지만 새로운 순간에 그 중 하나를 도입하지 않습니다.dracut
추가 파일 시스템 마운트에 대한 특정 지원이 있습니다. ...fstab의 마운트 옵션을 사용하여x-initrd.mount
마운트를 표시하는 것이 좋습니다. systemd는 이 경우에도 몇 가지 특별한 처리를 적용하기 때문입니다.