16

i create a target file to group all my personal services in my fedora 18, i tested the services and i can start then individually, but if i try to enable the target i got a error message!

[root@ghostrider system]# systemctl enable developer.target
Failed to issue method call: Invalid argument

And here the target code:

###########################################################################
# Target para ativar servicos de desenvolvimento em Java
###########################################################################
#/etc/systemd/system/developer.target

[Unit]
Description=Processes Java
After=default.target

[Install]
Alias=developer.target

I really don't understand what that message means, any clues?

LottaLava
  • 889
  • 1
  • 9
  • 21
  • 1
    You cannot use `[section]` inside a script comment those to line `[]` as a meaining in shell. As a consequence the call to the shell function [] have incorrect argument. – Kiwy Dec 06 '13 at 13:37
  • 1
    Hey i found why the first error, all service, target and unit files must be in /usr/lib/systemd/system then the target can be enabled, systemctl will create a symlink in /etc/systemd/system. If the after the services must be enabled also, after systemctl will create the .wants directory in both location /etc/systemd/system and /usr/lib/systemd/system and create the symlinks for every service. But i still having problems with the pid file. – LottaLava Dec 07 '13 at 00:14
  • 1
    Unit files do *not* have to be placed in /usr/lib/systemd/system/. See the section *Unit Load Path* of `man 5 systemd.unit` for valid locations, where among others /etc/systemd/system/ is included. – Anton Eliasson Jan 24 '16 at 17:21

2 Answers2

25

You have an Alias with the same name as the unit (developer.target). This caused the same issue for me while writing a service file. It is completely redundant, so just remove it.

Anton Eliasson
  • 923
  • 1
  • 8
  • 8
23

systemd will create symlink in /etc/systemd/system/xxx.target.wants, if your /etc/systemd/system/xxx.target.wants/xxx.service is not a symlink, systemd can not create symlink, it will throw this error.

please clean your /etc/systemd/system/xxx.target.wants/ dir.

jolestar
  • 1,285
  • 15
  • 21