Nowe posty

xx Dystrybucja pod HP Omen (6)
Wczoraj o 23:30:08
xx [Poradnik] Wyszukiwanie Sterowników (2)
Wczoraj o 21:08:23
lamp Problem z Linux Lite po instalacji (0)
Wczoraj o 19:50:30
xx Ile pingwinów? (1)
Wczoraj o 08:59:24
xx konfiguracja pale moon (0)
2024-03-24, 21:53:42
xx Plasma 6 w Neonie ssie trochę mniej ... (10)
2024-03-23, 02:38:11
xx problem z instalacja sterowników do karty sieciowej (3)
2024-03-18, 18:10:16
xx Plik abc.001 (1)
2024-03-17, 17:48:27
xx Zlecę dopracowanie programu w MatLab (0)
2024-03-13, 15:28:40
xx Linux Mint 21.3 XFCE brak dźwieku po paru minutach (karta muzyczna zintegrowana) (5)
2024-03-12, 23:07:01

Autor Wątek: systemd problem z ExecStart  (Przeczytany 934 razy)

Offline mackeire

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 490
    • Zobacz profil
systemd problem z ExecStart
« dnia: 2020-01-16, 22:51:19 »
Chcę uruchomić takie polecenie w systemd service

TOUCH_DEVICE_BLACKLIST="Synaptics T Pad V 01.31 Touchpad" /home/dell/.ppm/evdev-rce

W konsoli działa , natomiast systemd nie chce uruchomić usługi

plik ppm.service

[Unit]
Description=ppm

[Service]
Type=simple
ExecStart=TOUCH_DEVICE_BLACKLIST="Synaptics T Pad V 01.31 Touchpad" /home/dell/.ppm/evdev-rce

[Install]
WantedBy=multi-user.target

 manual systemd mi niewiele mówi.


$ sudo systemctl status ppm.service
[sudo] hasło użytkownika dell:
● ppm.service - ppm
   Loaded: error (Reason: Exec format error)
   Active: inactive (dead)
« Ostatnia zmiana: 2020-01-16, 22:55:34 wysłana przez mackeire »

Offline pavbaranov

  • Users
  • Guru
  • *****
  • Wiadomości: 879
    • Zobacz profil
Odp: systemd problem z ExecStart
« Odpowiedź #1 dnia: 2020-01-17, 09:20:23 »
To co chcesz wprowadzić jako polecenie do wykonania wygląda mi na jakąś zmienną środowiskową. Czy to musi być usługa systemd? Nie może być "normalnie", jako zmienna?

Offline mackeire

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 490
    • Zobacz profil
Odp: systemd problem z ExecStart
« Odpowiedź #2 dnia: 2020-01-17, 11:17:01 »
Chcę uruchomić przy starcie systemu programik evdev-rce wg instrukcji poniżej :

# Required interval in ms for a touch event to be considered a long press
# default = 1000ms
LONG_CLICK_INTERVAL=1000
# Allowed margin of error (in px) for a long press event
# i.e. the finger is considered still if its movement is within this range
# Note: the px here is not physical pixels on the screen. It's the physical
# pixels of the touch devices, which may have a different resolution.
# default = 100px
LONG_CLICK_FUZZ=100
# Uncomment to set a blacklist of devices that `evdev-rce` will not
# listen on for touch events. The names can be retrived by using `xinput`
# or simply by reading the output of `evdev-rce`
# (it will print out the names of all touch devices when starting,
#  e.g. "Found touch screen at <some_path>: <device_name>)
TOUCH_DEVICE_BLACKLIST="Synaptics T Pad V 01.31 Touchpad"
# Uncomment to set a whitelist of devices that `evdev-rce` will ONLY
# listen on. This overrides the blacklist - when whitelist is present,
# any device not in this list will be ignored.
#TOUCH_DEVICE_WHITELIST="device1 name|device2 name|..."
```

So you can run the program like

```
LONG_CLICK_INTERVAL=500 LONG_CLICK_FUZZ=50 evdev-rce

W związku z tym ,że program potrzebuje dostępu do /dev/input/event1 system woła o hasło.
Więc przez systemd będzie chyba łatwiej , można by też pewnie zrobić to regułami w udev .

Tak czy siak znalazłem obejście problemu.
systemd odpala zwykły skrypt nie wymagający podawania żadnych zmiennych który zawiera ścieżkę do właściwego skryptu ;)

sudo systemctl status ppm.service
[sudo] hasło użytkownika dell:
● ppm.service - ppm
   Loaded: loaded (/etc/systemd/system/ppm.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2020-01-17 10:52:26 CET; 20min ago
 Main PID: 731 (blacklist_touchpad.s)
    Tasks: 2 (limit: 4531)
   CGroup: /system.slice/ppm.service
           ├─731 /bin/sh /home/dell/.ppm/blacklist_touchpad.sh
           └─741 /home/dell/.ppm/evdev-rce
```
« Ostatnia zmiana: 2020-01-17, 11:21:45 wysłana przez mackeire »

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3049
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
Odp: systemd problem z ExecStart
« Odpowiedź #3 dnia: 2020-01-17, 12:45:13 »
Poprawnie (tj bez skryptu pośredniego) powinno to być zrobione zgodnie z dokumentacją systemd.service, przy pomocy pola Environment:

[Unit]
Description=ppm

[Service]
Type=simple
Environment=TOUCH_DEVICE_BLACKLIST='Synaptics T Pad V 01.31 Touchpad'
ExecStart=/home/dell/.ppm/evdev-rce

[Install]
WantedBy=multi-user.target
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

Offline mackeire

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 490
    • Zobacz profil
Odp: systemd problem z ExecStart
« Odpowiedź #4 dnia: 2020-01-17, 14:31:11 »
Dzięki. Tak zrobiłem, niech będzie prawidłowo.