권한이 거부되어 권한이 없는 사용자로 시작 작업이 실패함

권한이 거부되어 권한이 없는 사용자로 시작 작업이 실패함

권한 없는 사용자로 실행되는 Sage Cell Server(오픈 소스 수학 엔진)를 설정하려고 합니다. sagecell이 작업을 수행하기 위해 권한이 없는 사용자를 만들었습니다 . 정상적으로 설치되고 정상적으로 실행되면

sagecell@primary-server:~/sage/devel/sagecell$ ../../sage web_server.py

그러면 모든 것이 예상대로 작동합니다. 이 애플리케이션의 흥미로운 요구 사항(관련될 수도 있고 그렇지 않을 수도 있음)은 비밀번호 없는 SSH 로그인(즉, ssh localhost작동함)이 필요하다는 것입니다. 작업을 수행하기 위해 SSH 키를 사용하여 권한이 없는 계정을 설정했습니다.

이제 서버를 시작한 후 스크린 세션을 수동으로 생성하고 스크린 세션에서 실행하는 대신 다음 설정을 사용하여 새 작업을 생성하려고 합니다.

description "Sage Cell Server Starter"

start on runlevel [2345]
stop on starting rc runlevel=[016]

kill timeout 5

exec su -s /bin/sh -c 'exec "$0" "$@"' sagecell -- /home/sagecell/sage/sage /home/sagecell/sage/devel/sagecell/web_server.py

그러나 이것은 작동하지 않습니다. /var/log/upstart/sagecell.log를 보면 다음 오류가 발생합니다.

2013-02-20 00:11:09,665 sagecell:INFO starting tornado web server
Traceback (most recent call last):
  File "/home/sagecell/sage/devel/sagecell/web_server.py", line 78, in <module>
    application = SageCellServer()
  File "/home/sagecell/sage/devel/sagecell/web_server.py", line 57, in __init__
    kernel_timeout=kernel_timeout)
  File "/home/sagecell/sage-5.7.rc0/devel/sagecell-main/trusted_kernel_manager.py", line 28, in __init__
    self._sender = sender.AsyncSender() # Manages asynchronous communication
  File "/home/sagecell/sage-5.7.rc0/devel/sagecell-main/sender.py", line 22, in __init__
    self.router.bind(self.filename)
  File "socket.pyx", line 489, in zmq.core.socket.Socket.bind (zmq/core/socket.c:4797)
zmq.core.error.ZMQError: Permission denied

편집: 애플리케이션이 포트 8080에 바인딩된다는 점에 유의해야 합니다(내가 아는 한 8080만 해당). 중요한 점은 실행하면 권한 없이 실행되지만 Upstart가 동일한 사용자로 실행할 때는 실행되지 않는다는 것입니다.

사용자 하에서 잘 실행되는 애플리케이션이 sagecell스크립트 AS를 실행하는 시작 작업 하에서는 실행되지 않는 이유를 누가 말해 줄 수 있습니까 sagecell?

관련 정보