Added systemd unit file
This commit is contained in:
parent
3f1d2e2d60
commit
48de4faf90
@ -15,6 +15,12 @@ sudo emerge -NDuv pyyaml
|
|||||||
sudo cp pyupsmon.yml.example /etc/pyupsmon.yml
|
sudo cp pyupsmon.yml.example /etc/pyupsmon.yml
|
||||||
```
|
```
|
||||||
* Edit the config to your liking using your favourite text editor
|
* Edit the config to your liking using your favourite text editor
|
||||||
|
* Install the Python script
|
||||||
|
```
|
||||||
|
sudo mkdir -p /usr/local/sbin
|
||||||
|
sudo cp pyupsmon.py /usr/local/sbin/pyupsmon
|
||||||
|
sudo chmod 0755 /usr/local/sbin/pyupsmon
|
||||||
|
```
|
||||||
* Install the `systemd` unit file
|
* Install the `systemd` unit file
|
||||||
```
|
```
|
||||||
sudo cp pyupsmon.service /etc/systemd/system
|
sudo cp pyupsmon.service /etc/systemd/system
|
||||||
|
16
pyupsmon.py
16
pyupsmon.py
@ -52,7 +52,7 @@ class ConvertUPS(Serial):
|
|||||||
if self.shutdownTimeout is None:
|
if self.shutdownTimeout is None:
|
||||||
self.shutdownTimeout = float(cfg['shutdown'].get('timeout', 3600))
|
self.shutdownTimeout = float(cfg['shutdown'].get('timeout', 3600))
|
||||||
if self.shutdownCommand is None:
|
if self.shutdownCommand is None:
|
||||||
self.shutdownCommand = shlex.split(cfg['shutdown'].get('command', '/sbin/shutdown -h now'))
|
self.shutdownCommand = shlex.split(cfg['shutdown'].get('command', '/sbin/shutdown -h +2'))
|
||||||
except OSError:
|
except OSError:
|
||||||
if debug:
|
if debug:
|
||||||
print('Could not read config file %s.' % configfile)
|
print('Could not read config file %s.' % configfile)
|
||||||
@ -68,7 +68,7 @@ class ConvertUPS(Serial):
|
|||||||
if self.shutdownTimeout is None:
|
if self.shutdownTimeout is None:
|
||||||
self.shutdownTimeout = 3600.0
|
self.shutdownTimeout = 3600.0
|
||||||
if self.shutdownCommand is None:
|
if self.shutdownCommand is None:
|
||||||
self.shutdownCommand = shlex.split('/sbin/shutdown -h now')
|
self.shutdownCommand = shlex.split('/sbin/shutdown -h +2')
|
||||||
|
|
||||||
if self.debug:
|
if self.debug:
|
||||||
print('Configuration:')
|
print('Configuration:')
|
||||||
@ -189,12 +189,12 @@ class ConvertUPS(Serial):
|
|||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
#try:
|
try:
|
||||||
ups = ConvertUPS()
|
ups = ConvertUPS()
|
||||||
#except:
|
except:
|
||||||
# print('Error: Could not open UPS serial connection.')
|
print('Error: Could not open UPS serial connection.')
|
||||||
# print('\tCheck the config file!')
|
print('\tCheck the config file!')
|
||||||
# sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
if not ups.upsInit():
|
if not ups.upsInit():
|
||||||
print('Error: Could not initialize UPS.')
|
print('Error: Could not initialize UPS.')
|
||||||
@ -204,7 +204,9 @@ if __name__ == "__main__":
|
|||||||
(toggled, onBatt) = ups.powerToggled()
|
(toggled, onBatt) = ups.powerToggled()
|
||||||
if toggled:
|
if toggled:
|
||||||
if onBatt:
|
if onBatt:
|
||||||
|
print('UPS AC power loss. Starting shutdown timer.')
|
||||||
ups.startShutdownTimer()
|
ups.startShutdownTimer()
|
||||||
if not onBatt:
|
if not onBatt:
|
||||||
|
print('UPS AC power restored. Cancelling shutdown timer.')
|
||||||
ups.cancelShutdownTimer()
|
ups.cancelShutdownTimer()
|
||||||
sleep(ups.interval)
|
sleep(ups.interval)
|
||||||
|
10
pyupsmon.service
Normal file
10
pyupsmon.service
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Python3 UPS Monitor
|
||||||
|
Documentation=https://git.iwm-tuebingen.de/tkurbad/pyupsmon
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
ExecStart=/usr/local/sbin/pyupsmon
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
Loading…
Reference in New Issue
Block a user