当前位置: 首页 > 知识库问答 >
问题:

带有python脚本的Ubuntu Server 16.04 systemctl服务正在运行但不工作

马淳
2023-03-14

我在这个网站上读了很多关于如何将python脚本作为服务实现的帖子。

在摆弄了一下之后,我发现服务是通过systemctl启动的(并且正在运行),但脚本什么也没做...

我的配置文件位于/etc/systemd/system/:

[Unit]
Description=tg Bot

[Service]
Type=simple
User=user
WorkingDirectory=/home/user/tg_onduty/
ExecStart=/usr/bin/python3 /home/user/tg_onduty/on_duty.py
Restart=always

[Install]
WantedBy=multi-user.target

输出:

user@server:~$ sudo service tg_onduty status
● tg_onduty.service - Telegram OnDuty Bot
   Loaded: loaded (/etc/systemd/system/tg_onduty.service; enabled; vendor preset
   Active: active (running) since Thu 2018-02-15 11:28:20 CET; 2min 17s ago
 Main PID: 1538 (python3)
    Tasks: 9
   Memory: 17.7M
      CPU: 351ms
   CGroup: /system.slice/tg_onduty.service
           └─1538 /usr/bin/python3 /home/user/tg_onduty/on_duty.py

我读过https://unix.stackexchange.com/questions/339638/difference-between-systemd-and-terminal-starting-program/339645#339645并了解通过systemctl运行脚本与通过CLI运行脚本不同(通过CLI/usr/bin/python3/home/user/tg\u onduty/on\u duty.py正在工作)。

我现在的问题是:

我如何跟踪或查看出了什么问题,或者为什么脚本似乎什么都没做?通过JournalCtrl我只看到:2月15日11:56:17服务器系统D[1]:启动了tg机器人。

感谢任何帮助。

谢谢

大卫

共有2个答案

成和悌
2023-03-14

向脚本中添加一个简单的操作。可能会回显某些内容或创建一个虚拟文件。这是知道它是否有效的最简单方法

诸葛立果
2023-03-14

您确定您的脚本根本没有运行吗?尝试将日志放入脚本中以查看脚本中的某些内容是否不起作用。

 类似资料:
  • 问题内容: 我正在调试一些必须在我的虚拟机上运行的python脚本。而且,我更喜欢在本地(虚拟机外部)编辑脚本。因此,我发现每次都将脚本修改为虚拟机 很繁琐。谁能提出一些有效的方法? 特别是,我想知道是否可以在远程PVM上执行python脚本。像这样: 问题答案: 可以使用ssh。Python接受连字符(-)作为执行标准输入的参数, 运行 python –help 以获得更多信息。

  • 问题内容: 我想在CENTOS服务器中运行python脚本: 我正在使用它,并且工作正常…问题是:即使关闭ssh控制台后,如何保持此脚本运行? 问题答案: 我使用此代码来守护我的应用程序。它允许您使用以下命令来编写脚本。 除此之外,我还有一个init.d脚本来控制我的服务。这使您可以在操作系统启动时自动启动服务。 这是一个简单的示例,可以助您一臂之力。只需将代码移到一个类中,然后从内部的函数中调用

  • 问题内容: 我刚刚开始学习Python,现在我很迷路。我想在通过hosting24.com托管的服务器上运行脚本。他们的常见问题解答说他们支持Python,但是我不知道将脚本放在哪里运行。 我的根目录中有一个名为cgi-bin的文件夹,我猜这是我放置脚本的位置吗?有人可以向我解释这是如何工作的吗? 问题答案: 很简单,您可以将Python脚本重命名为“ pythonscript.cgi”。将其发布

  • 问题内容: 我正在草拟一组程序的体系结构,这些程序共享存储在数据库中的各种相互关联的对象。我希望其中一个程序充当服务,为这些对象的操作提供更高级别的接口,而其他程序则通过该服务访问对象。 我目前的目标是将Python和Django框架作为实现该服务的技术。我很确定自己知道如何守护Linux中的Python程序。但是,这是系统应支持Windows的可选规格。我几乎没有Windows编程经验,也没有W

  • 这些天我们一直在尝试安装hadoop集群。有时成功,但大多数时候失败了。我根据官方文件和一些看似高质量的博客进行配置。 我遇到的问题是:所有进程(包括namenode、datanode、nodemanager、resourcemanager)都可以通过命令查看: 但是奴隶们实际上没有工作。我无法在web界面master:8088或master:50070中看到它们 有人说这是重复的namenode

  • 问题内容: 如何检查正在解释脚本的版本的Python Interpreter? 问题答案: 模块的字符串中提供了此信息: 可读性: 进行进一步处理: 为了确保脚本以Python解释器的最低版本要求运行,请将其添加到你的代码中: 这将比较主要版本和次要版本信息。微(=添加0,1等等),甚至的元组只要你喜欢。但是请注意,最好总是“躲避”检查某个功能是否存在,如果没有,请采取变通方法(或纾困)。有时,某