amazon-web-services - 如何调试失败的systemctl服务(代码=已退出,状态= 217/USER)?

标签 amazon-web-services amazon-ec2 service rhel7 systemctl

我试图在rhel7(位于AWS / EC2中)上添加我的第一个服务,但是-服务配置不正确-正如我得到的:

[ec2-user@ip-172-30-1-96 ~]$ systemctl status clouddirectd.service -l
● clouddirectd.service - CloudDirect Daemon
   Loaded: loaded (/usr/lib/systemd/system/clouddirectd.service; enabled; vendor preset: disabled)
   Active: activating (auto-restart) (Result: exit-code) since Tue 2018-01-09 16:09:42 EST; 8s ago
 Main PID: 10064 (code=exited, status=217/USER)

Jan 09 16:09:42 ip-172-30-1-96.us-west-1.compute.internal systemd[1]: clouddirectd.service: main process exited, code=exited, status=217/USER
Jan 09 16:09:42 ip-172-30-1-96.us-west-1.compute.internal systemd[1]: Unit clouddirectd.service entered failed state.
Jan 09 16:09:42 ip-172-30-1-96.us-west-1.compute.internal systemd[1]: clouddirectd.service failed.


也:

[ec2-user@ip-172-30-1-96 ~]$ systemctl is-active clouddirectd
activating
[ec2-user@ip-172-30-1-96 ~]$ sudo systemctl list-units --type service --all | grep clouddirectd
  clouddirectd.service                                  loaded    activating auto-restart CloudDirect Daemon


我的单位文件是:

[ec2-user@ip-172-30-1-96 ~]$ cat /usr/lib/systemd/system/clouddirectd.service
[Unit]
Description=CloudDirect Daemon
After=network.target

[Service]
Environment=AWS_SHARED_CREDENTIALS_FILE=/etc/sonar/.aws/credentials
#ExecStart=/usr/lib/sonar/clouddirect/virtualenv/bin/python /usr/bin/sonar/clouddirectd -c /etc/sonar/clouddirect/clouddirectd.conf
ExecStart=/usr/lib/sonar/clouddirect/virtualenv/bin/python /usr/bin/clouddirect -c /etc/sonar/clouddirect.conf
# @PERM@ allow group write permission on newly created files
UMask=0007
#User=clouddirectd
User=clouddirect
Group=sonar
KillSignal=SIGINT
TimeoutStopSec=60min
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target


您能建议如何调试systemctl服务,使其不会自杀吗?

最佳答案

错误217指示在尝试启动服务时用户不存在。在您的情况下,您在服务中指定的用户是clouddirect

 Main PID: 10064 (code=exited, status=217/USER)

Jan 09 16:09:42 ip-172-30-1-96.us-west-1.compute.internal systemd[1]: clouddirectd.service: main process exited, code=exited, status=217/USER


如果这不是实际的用户名(例如,如果有错字),则可能导致此问题;如果该用户是某个外部用户存储(例如LDAP或Active Directory)和所需服务的一部分,则也可能导致该问题。允许Linux服务器访问外部用户存储的启动尚未启动。例如,vasd.service启动了​​一种产品,该产品用于允许Linux对Active Directory进行身份验证,如果vasd.service没有启动,并且您指定了仅在Active Directory中可用的用户,则希望将该服务添加到After=中。线。例如:

After=network.target vasd.service

关于amazon-web-services - 如何调试失败的systemctl服务(代码=已退出,状态= 217/USER)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48176240/

相关文章:

ssl - 哪个 ssl 证书适合 aws elastic load balancer 和 cloudfront? ssl 证书兼容性

php - 适用于 PHP5 的亚马逊机器镜像 (AMI)

ubuntu - 无法将文件从 Amazon EC2 传输到 S3

service - 运行 Windows 服务时登录失败

ruby 后台服务

javascript - Amazon Alexa Skill Lambda 代码无法执行

amazon-web-services - 如何将 AWS CodeBuild 配置为仅在推送到主分支时进行构建?

android - 前台启动通知错误,服务通知 channel 无效 :

amazon-web-services - 如何在 AWS::CloudFormation::Init 中添加 yum 存储库

amazon-ec2 - Memcached 无法与 AWS Classic Load Balancer 一起使用