Служба была включена, но не удалось.Как я могу заставить его работать? - PullRequest
0 голосов
/ 10 апреля 2019

Я использую Linux Mint 19. Я создал простой скрипт "After_suspension", который будет запускать три команды.Я пытаюсь заставить его работать, когда Mint просыпается от приостановки.

matthew@matthew-pc:~$ cat /usr/local/bin/After_suspension
#!/bin/bash
pon dsl-provider
sudo service fancontrol start
/usr/bin/mailnag

matthew@matthew-pc:~$ file /usr/local/bin/After_suspension
/usr/local/bin/After_suspension: Bourne-Again shell script, ASCII text executable

"mailnag" равен (text/x-python).Я создал следующий служебный файл, который был включен, но не удалось.Как я могу заставить его работать?Должен ли я использовать три отдельных служебных файла для запуска трех команд?

matthew@matthew-pc:~$ cat /etc/systemd/system/After_suspension.service
[Unit]
After=suspend.target

[Service]
ExecStart=/usr/local/bin/After_suspension

[Install]
WantedBy=suspend.target
matthew@matthew-pc:~$ systemctl is-enabled After_suspension.service
enabled
matthew@matthew-pc:~$ systemctl is-active After_suspension.service
failed

matthew@matthew-pc:~$ systemctl status After_suspension.service
● After_suspension.service
Loaded: loaded (/etc/systemd/system/After_suspension.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Thu 2019-04-11 01:19:42 HKT; 3min 46s ago
Process: 11655 ExecStart=/usr/local/bin/After_suspension (code=exited, status=1/FAILURE)
Main PID: 11655 (code=exited, status=1/FAILURE)

Apr 11 01:19:11 matthew-pc After_suspension[11655]:   File "/usr/lib/python2.7/dist-packages/dbus/bus.py", line 122, in __new__
Apr 11 01:19:11 matthew-pc After_suspension[11655]:     bus = cls._new_for_bus(address_or_type, mainloop=mainloop)
Apr 11 01:19:11 matthew-pc After_suspension[11655]: dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NotSupported: Unable to autolaunch a dbu
Apr 11 01:19:07 matthew-pc systemd[1]: Started 
After_suspension.service.
Apr 11 01:19:07 matthew-pc systemd[1]: After_suspension.service: Main process exited, code=exited, status=1/FAILURE
Apr 11 01:19:42 matthew-pc pppd[11657]: Timeout waiting for PADO packets
Apr 11 01:19:42 matthew-pc pppd[11657]: Unable to complete PPPoE Discovery
Apr 11 01:19:42 matthew-pc pppd[11657]: Terminating on signal 15
Apr 11 01:19:42 matthew-pc pppd[11657]: Exit.
Apr 11 01:19:42 matthew-pc systemd[1]: After_suspension.service: Failed with result 'exit-code'.

Ниже приведен настоящий "fancontrol.service".

matthew@matthew-pc:~$ cat /lib/systemd/system/fancontrol.service
[Unit]
Description=fan speed regulator
# Run pwmconfig to create this file.
ConditionPathExists=/etc/fancontrol
After=lm-sensors.service
Documentation=man:fancontrol(8) man:pwmconfig(8)

[Service]
ExecStartPre=/usr/sbin/fancontrol --check
ExecStart=/usr/sbin/fancontrol
PIDFile=/var/run/fancontrol.pid

[Install]
WantedBy=multi-user.target

1 Ответ

0 голосов
/ 10 апреля 2019

Systemd запускает системные скрипты как root, поэтому вы пытаетесь запустить диски GNOME как root в терминальном сеансе без активного X-сервера, поэтому вы, вероятно, получаете сообщение об отказе в соединении.

Возможно, вы захотите настроить эту службу как службу пользователя (вам, вероятно, придется также передавать переменную DISPLAY), или просто сначала попытайтесь установить переменную DISPLAY в своем скрипте или службе systemd.

...