J'ai créé un bot Twitter avec Python, mais je ne pouvais pas le voir avec la commande log systemctl status
sortie par la fonction d'impression, donc je me souviens de la solution. Je vous serais reconnaissant de bien vouloir me dire s’il existe un meilleur moyen.
CentOS Linux release 8.1.1911 (Core)
Description du fichier Unit dans ʻetc \ systemd \ system \ `
bot.service
[Unit]
Description=Python Tweet Collector
[Service]
ExecStart=Dossier d'exécution(Voici un script shell qui lance Bot)Chemin
Type=simple
StandardOutput=journal #Rendre la sortie standard visible dans journalctl
StandardError=journal #Rendre les erreurs standard visibles dans journalctl
[Install]
WantedBy=multi-user.target
Il semble que la sortie standard de Python puisse être mise en mémoire tampon et que la sortie de l'instruction d'impression ne puisse pas être affichée avec uniquement les paramètres ci-dessus ... J'ai donc écrit un script shell et lancé Bot à partir de là
start_bot.sh
#!/bin/bash
cd $(dirname $0) #Déplacer vers le répertoire où se trouve ce fichier
. venv/bin/activate #Activer l'environnement virtuel Python
python -u bot.py # -Désactiver le tampon avec l'option u
Enfin, accordez l'autorisation d'exécution au script shell avec ch mod 744 start_bot.sh
Lancer le bot
systemctl start bot.service
Vérifiez l'état du Bot
systemctl status bot.service
Vérifiez le journal
journalctl -u bot.service
Vous pouvez voir que le contenu généré par l'instruction d'impression Python est affiché dans le journal.
Je suis encore un débutant sur Linux, donc je vous serais très reconnaissant si vous pouviez me donner des suggestions ou des conseils sur des points inappropriés.