Nie mogę włączyć lub wyłączyć usługi użytkownika: Nie można wykonać operacji: Brak takiego pliku lub katalogu

18

Chcę debugować / przetestować program w środowisku Eclipse, który korzysta z serwera Redis, więc postanowiłem przekształcić serwer w usługę użytkownika, aby mieć przywilej uruchamiania go. Niepokoi mnie to, że mogę uruchomić lub zatrzymać usługę, ale nie mogę jej włączyć / wyłączyć.

Występuje błąd:

Failed to execute operation: No such file or directory

Oryginalny / 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

Edytowano i przeniesiono do / 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

Status systemu:

�� 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

Dziennik:

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
źródło
Czy pobiegłeś systemctl daemon-reloadpo przeniesieniu / edycji plików?
André Borie,

Odpowiedzi:

4

W moim przypadku umieściłem pliki jednostki systemowej bezpośrednio w /etc/systemd/system/...folderach. Przeniesiono je /lib/systemd/systemzamiast tego, co rozwiązało problem z poleceniami włączania / wyłączania systemctl.

Alex
źródło
2
Minęło dużo czasu, odkąd miałem ten problem, ale pamiętam, że coś takiego jest rozwiązaniem.
Folatt
1
w grzybicy, skopiowałem z lib do etc i zadziałało
Stalin Gino
21

Problem z dowiązaniem symbolicznym?

Miałem podobny komunikat o błędzie podczas korzystania z dowiązań symbolicznych.

Najwyraźniej systemd nie korzysta z dowiązań symbolicznych, rozwiązaniem jest po prostu skopiowanie lub przeniesienie pliku.

Usługa użytkownika?

Uważam, że musisz dodać --userdo wiersza poleceń dla jednostek w user/:

sudo systemctl --user enable arkos-redis.service
Benoit Blanchon
źródło
2
Był tu również problem z dowiązaniem symbolicznym.
cweiske
2
Ciekawy. Zrobiłem to zgodnie z dowiązaniem symbolicznym, kiedy startredagowałem serwis, ale enablenie zrobiłem tego
Michael Mrozek
Masz rację, dowiązanie symboliczne nie działa. Zamiast tego użyłem twardego linku.
Bryce Guinta
1
Ciekawy. Używam dowiązania symbolicznego, ponieważ pozwala mi zarządzać plikiem usługi jako częścią jego projektu i jest w porządku do uruchamiania i zatrzymywania, ale nie do włączania. Bardzo dziwne ograniczenie.
rosuav
Tutaj zaczyna się dyskusja na temat tego, dlaczego zezwalać na dowiązania symboliczne: bugzilla.redhat.com/show_bug.cgi?id=955379#c14
jgomo3
1

Próbować:

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

Miałem ten sam problem. Jeśli to nie działa:

  • sudo strace systemctl enable arkos-redis

Poszukaj miejsca ostatniego niepowodzenia.

TJR
źródło
0

Mam ten sam problem na Fedorze 29.

Zamień: na After=network.target
: Requires=network.target

Jest to niezwykle frustrujące, ponieważ plik jest wyraźnie widoczny, ale wydaje się, że nic nie chce go zobaczyć. Nie ma też błędu w analizie systemowej. Po prostu pokazuje się jako „zły” pod systemctl --list-unit-files.

użytkownik3559338
źródło
-1

Otrzymał ten błąd na Redhat, gdy plik jednostki był pusty

Cannot send after transport endpoint shutdown
Ben DeMott
źródło