Skip to content

Psystemd not working properly with PyInstaller #90

Description

@MuhammedAliISIK

In my project I needed a way to handle systemctl signals gracefully so I decided to use psystemd. Other alternatives did not perform properly. My main goal is to convert my Python script to executable and make it run as a service in the backgorund. The main problem I am facing rn is that my code cannot process systemctl stop signal gracefully. The way I implemented psystemd is given below.

from pystemd.systemd1 import Unit

if __name__ == "__main__":
    try:
        myc = Dlp_Service()
        myc.start()
        while True:
            sleep(1)

            if myc.unit.Unit.ActiveState == b"deactivating":
                myc.stop()
    except Exception as e:
        print(e)
        myc.stop()

It is initiated inside the Dlp_Service constructor like self.unit = Unit(b"myservice.service").
The error message is "ModuleNotFoundError: No module named 'pystemd.dbusexc'". The executable is created inside a virtual environment that has psystemd installed and this program works flawless as a Python script. How can i handle this error and use my program as executable?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions