我正在尝试使用 64 位 Ubuntu 14.04 计算机上的 CUPS Connector 和 Google 提供的 gcp-cups-connector 可执行文件设置 Google Cloud Printer 服务器。我按照维基百科并按照说明创建用户 gcp这里以及一个 init 文件。我安装了 upstart 脚本,但失败了。
sudo useradd -s /usr/sbin/nologin -r -M gcp
当我尝试从 CLI 运行连接器时,它会要求输入一个我没有的密码(我猜是 gcp 的密码),而且空的密码不被接受:
exec su -l -s /bin/sh -c "~/GCP/gcp-cups-connector -config-filename ~/GCP/gcp-cups-connector.config.json" gcp
password:
这是 cups 授权问题吗?如果我以普通用户身份运行连接器,它还会询问密码(我知道是回车键)。然后一切正常。但它会阻止 upstart 自动运行。
答案1
我认为我找到了答案:不能su
将nologin
用户作为普通用户,但以超级用户身份调用它可以工作,无需输入密码。
无论如何,这整件事的发生是因为这个命令是作为 upstart 作业运行的(以 root 身份执行),并且在启动过程中不断失败。所以我尝试从 CLI 对其进行调试。
值得注意的是,在我的系统(Ubuntu 14.04)上,/etc/init/gcp.conf 脚本在其 wiki 版本中不起作用,我不得不增加 40 秒的暂停才能在启动时可靠地启动它:
start on (local-filesystems and net-device-up)
stop on runlevel [!2345]
respawn
pre-start script
sleep 40
end script
exec su -l -s /bin/sh -c "/home/<user>/GCP/gcp-cups-connector \
-config-filename /home/<user>/GCP/gcp-cups-connector.config.json" gcp