백그라운드에서 루트 작업/프로그램을 실행하는 올바른 방법

백그라운드에서 루트 작업/프로그램을 실행하는 올바른 방법

저는 백그라운드에서 루트로 실행되어야 하는 프로그램을 작성하고 있습니다.

(모든 사용자에게)

이를 위해 이 파일을 사용했습니다 /etc/rc.local. 이것은 작동하는 것 같습니다.

내가 가진 문제는 일반 사용자가 컴퓨터를 종료하려고 할 때 루트 계정에 활성 "작업"이 있으므로 일반 사용자에게 루트 암호를 묻는다는 것입니다.

이로 인해 내가 이 작업을 잘못된 방식으로 수행하고 있을 수도 있다고 추측하게 됩니다. 더 좋은 방법이 있나요? 나는 효과가 있을 수 있는 몇 가지 수정 사항을 생각해 보았지만 올바르게 수행하는 방법을 알고 싶습니다!

답변1

아니요, 그것에 의존하지 않습니다. rc.local에서 간단한 작업을 호출하는 경우에는 이 동작이 발생하지 않아야 합니다.

백그라운드에서 루트로 작업을 실행하려는 경우 이를 데몬이라고 합니다. 이 작업을 수행하는 방법은 더 많이 있습니다. 가장 가능성 있는 방법은 3가지입니다.

  1. 악마가 정기적으로 어떤 일을 한다면, 당신은 그것을 다음과 같은 것으로 발전시킬 수 있습니다.예약 된 일들스크립트. 그다지 효과적이지는 않지만 분명합니다.
  2. 이를 위해 서비스를 생성할 수도 있습니다. 이는 다음을 의미합니다. 1. 시작/중지 스크립트를 개발해야 합니다. /etc/inittab2. systemd를 사용하여 서비스를 구성해야 합니다(이것은 아마도 기본 시스템 서비스 시작/재시작 데몬이 될 것입니다). 여기서 문제가 발생하면 다음 질문을 하셔도 좋습니다.
  3. 가장 강력한 솔루션은 처음 두 솔루션을 결합하여 달성됩니다. 대체 옵션도 포함되어 있지만. 시스템 서비스를 구현하고 이를 시스템 서비스로 실행한 다음 올바르게 작동하는지 간단히 테스트하는 테스트 스크립트를 개발합니다. 그렇지 않은 경우 종료하고 다시 시작하십시오.

실제 질문과 관련하여: 아니요, 사용자에게 단순히 데몬을 실행하는 것 이외의 다른 작업을 묻는 메시지가 거의 확실하게 표시됩니다. 설정의 다른 곳에 있어야 합니다. 일반적인 시스템에는 약 수백 개의 프로세스가 있으며 실제로는 완전히 중지할 수 없는 일부 작업이 있습니다(어떤 문제로 인해, 필요하지 않거나 불가능하기 때문에). 시스템에 문제가 발생하지는 않으며 단지 재부팅 속도가 더 빨라질 뿐입니다. 어떤 배포판을 사용하고 있는지, 백그라운드에서 무엇을 실행하고 있는지 등에 대해 좀 더 자세히 설명해 주시면 많은 도움이 될 것입니다.

관련 정보