daemon
我正在尝试使用(也尝试使用daemonize
实用程序)将 IRC 机器人作为守护进程运行,
我使用以下命令来运行它,
daemon --name=HsIRCb --chdir=/var/lib/jenkins/jobs/HsIRCb/workspace --command=/var/lib/jenkins/jobs/HsIRCb/workspace/dist/build/HsIRCb/HsIRCb --pidfile=/var/lib/jenkins/jobs/HsIRCb/workspace/HsIRCb.pid
当我以 root 身份运行该命令时,它可以工作,并且机器人会像预期的那样连接并停留在那里,但是当我要求 jenkins 运行它时,它会立即连接并退出。
我也尝试以 jenkins 用户身份登录,但仍然没有成功(没有抛出任何错误)。
值得注意的是,对于普通用户来说它可以工作,只有 jenkins 创建的用户才存在问题。
所以,我想知道,jenkins 用户是否没有某些权限,或者它应该属于某个组或类似的东西?
答案1
您screen
是否尝试过使用daemon
/ daemonize
?它通常功能更丰富,并且对诸如操作 shell 等操作的容忍度更高。
尝试
screen -mdS HsIRCb /path/to/command
您可以通过多种方式执行诸如更改目录、以其他用户身份登录等操作,但这是基本思想。