루트가 아닌 사용자가 백그라운드 프로그램을 자동으로 시작하도록 하는 방법은 무엇입니까?

루트가 아닌 사용자가 백그라운드 프로그램을 자동으로 시작하도록 하는 방법은 무엇입니까?

루트가 아닌 사용자로서 시스템 시작 시 백그라운드 작업을 실행하고 싶습니다. 루트 권한이 필요하지 않은 서비스입니다. 그것을 할 수 있는 방법이 있나요?

한 가지 방법은 을 입력하는 것이지만 sudo -u user command편집 rc.local하려면 rc.local루트 권한이 필요합니다.

또 다른 방법은 1분마다 시작하여 cron실행 중인 인스턴스가 있는지 확인하는 것입니다. 하지만 첫째, 불필요하게 시스템을 깨우게 되고, 둘째, 실행 중인 인스턴스를 확인하는 동안 경쟁 조건이 발생할 수 있습니다.

세 번째 방법은 에서 실행하는 것이지만 ~/.bash_profile사용자가 로그인하지 않고 시작하고 싶습니다.

답변1

귀하의 버전에 이 기능이 있으면 cron 을 사용할 수 있습니다 @reboot. ~에서사람 5 크론탭:

처음 5개 필드 대신 8개의 특수 문자열 중 하나가 나타날 수 있습니다.

  string         meaning
  ------         -------
  @reboot        Run once, at startup.

crontab -e이 명령을 사용하면 루트 권한 없이 사용자의 로컬 crontab을 편집할 수 있습니다 . 그런 다음 다음 줄을 추가합니다.

@reboot /usr/local/bin/some-command

이제 시작 시 명령이 한 번 실행됩니다.

관련 정보