J'essaie d'ajouter mon premier service sur rhel7
(qui réside dans AWS/EC2), mais - le service n'est pas configuré correctement - comme j'obtiens:
[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.
Aussi:
[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
Et mon fichier d'unité est:
[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
Pouvez-vous suggérer comment déboguer le service systemctl pour qu'il ne se suicide pas?
L'erreur 217 indique que l'utilisateur n'existait pas au moment où le service a tenté de démarrer. Dans votre cas, l'utilisateur spécifié dans votre service est 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
Cela peut être dû au fait que ce n'est pas le nom d'utilisateur réel (par exemple s'il a une faute de frappe), il peut également être causé si l'utilisateur fait partie d'un magasin d'utilisateurs externe (ex: LDAP ou Active Directory) et du service qui a besoin pour démarrer qui permet au serveur Linux d'accéder au magasin d'utilisateurs externe n'est pas encore activé. Par exemple vasd.service
démarre un produit utilisé pour permettre à Linux de s'authentifier auprès d'Active Directory, si vasd.service
n'est pas activé et vous avez spécifié un utilisateur qui n'est disponible que dans Active Directory, vous souhaitez ajouter ce service dans votre After=
ligne. Par exemple:
After=network.target vasd.service