¿Alguien podría descubrir por qué esta unidad systemd no se inicia?
He colocado el servicio en /etc/systemd/system/startup_actions.service
[Unit]
Description=Startup actions
[Service]
Type=oneshot
ExecStart=/usr/local/bin/disable_pgupdw.sh
[Install]
WantedBy=multi-user.target
Para correrlo hago
sudo systemctl start startup_actions.service
La unidad deshabilita de manera simple las teclas pgup y down con xmodmap, y funciona por sí sola:
#!/bin/bash
xmodmap -e 'keycode 112 = NoSymbol'
xmodmap -e 'keycode 117 = NoSymbol'
El guión se coloca en
/usr/local/bin
Esta es la salida de systemctl status startup_actions
startup_actions.service - Startup actions
Loaded: loaded (/etc/systemd/system/startup_actions.service; enabled; vendor preset: enable
Active: failed (Result: exit-code) since Sat 2017-11-04 14:15:18 GMT; 1h 21min ago
Process: 2360 ExecStart=/usr/local/bin/disable_pgupdw.sh (code=exited, status=1/FAILURE)
Main PID: 2360 (code=exited, status=1/FAILURE)
Cuando intento iniciarlo dice:
Job for startup_actions.service failed because the control process exited with error code.
See "systemctl status startup_actions.service" and "journalctl -xe" for details.
Respuestas:
La siguiente unidad funciona, aunque no es la solución óptima.
De hecho, uno necesita agregar un sueño 10 al comienzo del script, lo que no es muy bueno
Como señaló Ignacio, xmodmap requiere acceso al servidor X. La combinación
y
en el guión parece cumplir el requisito.
fuente
La misma unidad funciona para mí cuando la pongo
~user/.config/systemd/user/
(luegosystemctl --user daemon-reload
) y la empiezo a usarsystemctl --user start startup_actions.service
.De esta forma, las variables de entorno se configuran correctamente.
fuente