https://github.com/koho/winsvc
A Windows Service Creator API.
https://github.com/koho/winsvc
Last synced: about 1 year ago
JSON representation
A Windows Service Creator API.
- Host: GitHub
- URL: https://github.com/koho/winsvc
- Owner: koho
- Created: 2020-11-20T15:31:28.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2020-11-23T07:19:48.000Z (over 5 years ago)
- Last Synced: 2025-04-14T10:54:00.333Z (about 1 year ago)
- Language: Python
- Homepage:
- Size: 3.91 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# winsvc
A Windows Service Creator API.
## Install
```
pip install winsvc
```
## Example
```python
# test_svc.py
import os
import sys
import time
import click
import pathlib
from winsvc.cmd import add_svc_command
from winsvc.svc import Service
class TestService(Service):
_svc_name_ = 'winsvc'
_svc_display_name_ = "WIN SVC"
_svc_description_ = 'A Windows Service Creator'
_exe_name_ = sys.executable
def __init__(self, path):
self.running = True
self.path = path
self._exe_args_ = f'{os.path.abspath(__file__)} {path}'
def start(self):
while self.running:
pathlib.Path(self.path).touch()
time.sleep(5)
def stop(self):
self.running = False
@add_svc_command()
@click.group(invoke_without_command=True)
@click.argument("path", type=click.Path())
@click.pass_context
def main(ctx, path):
s = TestService(path)
if ctx.invoked_subcommand is None:
# Run in command line
s.start()
else:
# Run in Windows service
ctx.obj = s
if __name__ == '__main__':
main()
```
**Run in command line:**
```
python test_svc.py test.txt
```
**Run in service:**
```
python test_svc.py test.txt svc -d . install
python test_svc.py test.txt svc -d . start
```