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


14

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

한 가지 방법은 넣어하는 것입니다 sudo -u user commandrc.local있지만, 편집은 rc.local루트 권한이 필요합니다.

또 다른 방법은 cron매 분마다 시작하고 실행중인 인스턴스를 확인하는 것이지만, 먼저 시스템을 불필요하게 깨우고 두 번째로 실행중인 인스턴스를 확인하는 데 경쟁 조건이있을 수 있습니다.

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

답변:


17

버전에 @reboot기능 이 있으면 cron을 사용할 수 있습니다 . 에서 남자 5 crontab을 :

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

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

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

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

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


crontab -e아래에 cron 파일을 만드는 것이 드문 일 /tmp입니까?
Warlike Chimpanzee 2016 년

@Elliott 에디터에 따라 다릅니다. 결국 파일은로 끝납니다 /var/spool/cron/crontabs.
Marco
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.