Ich kann einen Benutzerdienst nicht aktivieren oder deaktivieren: Vorgang konnte nicht ausgeführt werden: Keine solche Datei oder kein solches Verzeichnis

18

Ich möchte ein Programm in Eclipse debuggen / testen, das einen Redis-Server verwendet. Daher habe ich beschlossen, den Server in einen Benutzerdienst zu verwandeln, um das Recht zu haben, ihn auszuführen. Was mich stört ist, dass ich den Dienst starten oder stoppen kann, aber nicht aktivieren / deaktivieren kann.

Der Fehler, den ich erhalte, ist:

Failed to execute operation: No such file or directory

Original / usr / lib / systemd / system:

[Unit]
Description=Advanced key-value store
After=network.target

[Service]
User=arkos
ExecStart=/usr/bin/redis-server /etc/arkos/arkos-redis.conf
ExecStop=/usr/bin/redis-cli shutdown

[Install]
WantedBy=multi-user.target

Bearbeitet und verschoben nach / usr / lib / systemd / user:

[Unit]
Description=Advanced key-value store

[Service]
ExecStart=/usr/bin/redis-server /etc/arkos/arkos-redis.conf
ExecStop=/usr/bin/redis-cli shutdown

[Install]
WantedBy=default.target

Systemctl Status:

�� arkos-redis.service - Advanced key-value store
   Loaded: loaded (/usr/lib/systemd/user/arkos-redis.service; disabled; vendor preset: enabled)
   Active: active (running) since Tue 2015-08-25 09:19:25 UTC; 1min 55s ago
  Process: 644 ExecStop=/usr/bin/redis-cli shutdown (code=exited, status=1/FAILURE)
 Main PID: 736 (redis-server)
   CGroup: /user.slice/user-1000.slice/[email protected]/arkos-redis.service
           ������736 /usr/bin/redis-server *:0                        

Aug 25 09:19:25 arkos-vagrant redis-server[736]: |    `-._`-._        _.-'_.-'    |
Aug 25 09:19:25 arkos-vagrant redis-server[736]: `-._    `-._`-.__.-'_.-'    _.-'
Aug 25 09:19:25 arkos-vagrant redis-server[736]: `-._    `-.__.-'    _.-'
Aug 25 09:19:25 arkos-vagrant redis-server[736]: `-._        _.-'
Aug 25 09:19:25 arkos-vagrant redis-server[736]: `-.__.-'
Aug 25 09:19:25 arkos-vagrant redis-server[736]: 736:M 25 Aug 09:19:25.471 # Server started, Redis version 3.0.3
Aug 25 09:19:25 arkos-vagrant redis-server[736]: 736:M 25 Aug 09:19:25.472 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
Aug 25 09:19:25 arkos-vagrant redis-server[736]: 736:M 25 Aug 09:19:25.472 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
Aug 25 09:19:25 arkos-vagrant redis-server[736]: 736:M 25 Aug 09:19:25.472 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
Aug 25 09:19:25 arkos-vagrant redis-server[736]: 736:M 25 Aug 09:19:25.472 * The server is now ready to accept connections at /tmp/arkos-redis.sock

Journalctl:

Aug 25 09:19:25 arkos-vagrant redis-server[736]: 736:M 25 Aug 09:19:25.470 # You requested maxclients of 10000 requiring at least 10032 max file descrip
Aug 25 09:19:25 arkos-vagrant redis-server[736]: 736:M 25 Aug 09:19:25.470 # Redis can't set maximum open files to 10032 because of OS error: Operation 
Aug 25 09:19:25 arkos-vagrant redis-server[736]: 736:M 25 Aug 09:19:25.470 # Current maximum open files is 4096. maxclients has been reduced to 4064 to 
Aug 25 09:19:25 arkos-vagrant redis-server[736]: _._
Aug 25 09:19:25 arkos-vagrant redis-server[736]: _.-``__ ''-._
Aug 25 09:19:25 arkos-vagrant redis-server[736]: _.-``    `.  `_.  ''-._           Redis 3.0.3 (00000000/0) 64 bit
Aug 25 09:19:25 arkos-vagrant redis-server[736]: .-`` .-```.  ```\/    _.,_ ''-._
Aug 25 09:19:25 arkos-vagrant redis-server[736]: (    '      ,       .-`  | `,    )     Running in standalone mode
Aug 25 09:19:25 arkos-vagrant redis-server[736]: |`-._`-...-` __...-.``-._|'` _.-'|     Port: 0
Aug 25 09:19:25 arkos-vagrant redis-server[736]: |    `-._   `._    /     _.-'    |     PID: 736
Aug 25 09:19:25 arkos-vagrant redis-server[736]: `-._    `-._  `-./  _.-'    _.-'
Aug 25 09:19:25 arkos-vagrant redis-server[736]: |`-._`-._    `-.__.-'    _.-'_.-'|
Aug 25 09:19:25 arkos-vagrant redis-server[736]: |    `-._`-._        _.-'_.-'    |           http://redis.io
Aug 25 09:19:25 arkos-vagrant redis-server[736]: `-._    `-._`-.__.-'_.-'    _.-'
Aug 25 09:19:25 arkos-vagrant redis-server[736]: |`-._`-._    `-.__.-'    _.-'_.-'|
Aug 25 09:19:25 arkos-vagrant redis-server[736]: |    `-._`-._        _.-'_.-'    |
Aug 25 09:19:25 arkos-vagrant redis-server[736]: `-._    `-._`-.__.-'_.-'    _.-'
Aug 25 09:19:25 arkos-vagrant redis-server[736]: `-._    `-.__.-'    _.-'
Aug 25 09:19:25 arkos-vagrant redis-server[736]: `-._        _.-'
Aug 25 09:19:25 arkos-vagrant redis-server[736]: `-.__.-'
Aug 25 09:19:25 arkos-vagrant redis-server[736]: 736:M 25 Aug 09:19:25.471 # Server started, Redis version 3.0.3
Aug 25 09:19:25 arkos-vagrant redis-server[736]: 736:M 25 Aug 09:19:25.472 # WARNING overcommit_memory is set to 0! Background save may fail under low m
Aug 25 09:19:25 arkos-vagrant redis-server[736]: 736:M 25 Aug 09:19:25.472 # WARNING you have Transparent Huge Pages (THP) support enabled in your kerne
Aug 25 09:19:25 arkos-vagrant redis-server[736]: 736:M 25 Aug 09:19:25.472 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sy
Aug 25 09:19:25 arkos-vagrant redis-server[736]: 736:M 25 Aug 09:19:25.472 * The server is now ready to accept connections at /tmp/arkos-redis.sock
Folatt
quelle
Haben Sie systemctl daemon-reloadnach dem Verschieben / Bearbeiten der Dateien ausgeführt?
André Borie

Antworten:

4

In meinem Fall habe ich meine System-Unit-Dateien direkt unter /etc/systemd/system/...Ordnern abgelegt . Verschob sie /lib/systemd/systemstattdessen auf und das löste das Problem mit systemctl enable / disable -Befehlen.

Alex
quelle
2
Es ist lange her, dass ich dieses Problem hatte, aber ich erinnere mich, dass so etwas die Lösung war.
Folatt
1
In meinem Fall habe ich von lib nach etc kopiert und es hat funktioniert
Stalin Gino
21

Symlink-Problem?

Ich hatte eine ähnliche Fehlermeldung bei der Verwendung von symbolischen Links.

Anscheinend folgt systemd keinen symbolischen Links. Die Lösung besteht einfach darin, die Datei zu kopieren oder zu verschieben.

Benutzerservice?

Ich glaube, dass Sie --userin der Befehlszeile für Einheiten hinzufügen müssen user/:

sudo systemctl --user enable arkos-redis.service
Benoit Blanchon
quelle
2
War auch das Symlink-Problem hier.
Cweiske
2
Interessant. Es folgte dem Symlink, als ich startden Service bearbeitete , enabletat es aber nicht
Michael Mrozek
Du hast recht, der Symlink hat nicht funktioniert. Ich habe stattdessen einen festen Link verwendet.
Bryce Guinta
1
Neugierig. Ich verwende einen Symlink, weil ich damit die Servicedatei als Teil des Projekts git-verwalten kann. Das Starten und Stoppen ist in Ordnung, das Aktivieren jedoch nicht. Sehr seltsame Einschränkung.
Rosuav
Hier beginnt die Diskussion über das Zulassen oder Nichtzulassen von
jgomo3
1

Versuchen:

  • sudo touch /etc/init.d/arkos-redis

Ich hatte das gleiche problem Wenn das nicht geht:

  • sudo strace systemctl enable arkos-redis

Suchen Sie nach dem Ort, an dem der letzte Fehler aufgetreten ist.

TJR
quelle
0

Ich hatte das gleiche Problem mit Fedora 29.

Ersetzen: durch After=network.target
: Requires=network.target

Es ist unglaublich frustrierend, denn die Datei ist eindeutig vorhanden, aber nichts scheint sie sehen zu wollen. Es gibt auch keinen Fehler bei der systemd-Analyse. Es zeigt sich nur als "schlecht" unter systemctl --list-unit-files.

user3559338
quelle