Como ativar o serviço para graphical.target apenas no systemd?

0

Estou tentando ativar o serviço bluetooth, apenas para o nível de execução graphical.target, alias 5.

Eu estou no Debian Jessie, usando o systemd.

Foi-me dito para criar um symlink no diretório /etc/systemd/system/graphical.target.wants, mas ainda estou um pouco perdido.

eu já tentei usar update-rc.d, não funcionou.

em / etc / systemd / system, existe uma pasta chamada bluetooth.service.wants, há um arquivo bluetooth.service lá, que contém as informações da unidade.

há também outro arquivo .service em / etc / systemd / system, que na verdade é um alias para o bluetooth.service original. obrigado

    
por UndefinedUserAtSO 07.05.2017 / 21:12

1 resposta

0

Esta resposta no Unix.SE fornece uma boa visão geral sobre como criar um alvo personalizado.

Aparentemente, você não pode facilmente substituir a seção [Install] de uma unidade do systemd. Define qual alvo “vai querer” a unidade.

~ # systemctl enable apcupsd
Created symlink /etc/systemd/system/multi-user.target.wants/apcupsd.service → /usr/lib/systemd/system/apcupsd.service.

~ # cat /usr/lib/systemd/system/apcupsd.service
[Unit]
Description=APC UPS Monitor

[Service]
ExecStart=/usr/bin/apcupsd -b

[Install]
WantedBy=multi-user.target

Como você pode ver, habilitar uma unidade (não apenas um serviço!) é tão simples quanto criar um symlink. Agora, quando o systemd for instruído a iniciar o multi-user.target , ele também iniciará apcupsd.service .

Então, primeiro você precisa descobrir onde bluetooth.service está localizado. Eu suponho que está em /usr/lib/systemd/system/bluetooth.service . Então você só precisa:

~ # ln -s /usr/lib/systemd/system/bluetooth.service /etc/systemd/system/graphical.target.wants/bluetooth.service

Se o diretório graphical.target.wants não existir, você precisará criá-lo primeiro.

    
por 08.05.2017 / 08:00

Tags