Saya tidak dapat mengaktifkan atau menonaktifkan layanan pengguna: Gagal menjalankan operasi: Tidak ada file atau direktori tersebut


18

Saya ingin men-debug / menguji program di gerhana yang menggunakan server Redis jadi saya memutuskan untuk mengubah server menjadi layanan pengguna untuk mendapatkan hak istimewa untuk menjalankannya. Yang mengganggu saya adalah saya bisa memulai atau menghentikan layanan tetapi tidak mengaktifkan / menonaktifkannya.

Kesalahan yang saya dapatkan adalah:

Failed to execute operation: No such file or directory

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

Diedit dan dipindahkan ke / usr / lib / systemd / pengguna:

[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 systemctl:

�� 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/user@1000.service/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

Sudahkah Anda berlari systemctl daemon-reloadsetelah memindahkan / mengedit file?
André Borie

Jawaban:


4

Dalam kasus saya, saya menempatkan file unit systemd saya langsung di bawah /etc/systemd/system/...folder. Pindahkan mereka /lib/systemd/systemsebagai gantinya dan itu menyelesaikan masalah dengan systemctl mengaktifkan / menonaktifkan perintah.


2
Sudah lama sejak saya memiliki masalah ini, tapi saya ingat sesuatu seperti ini menjadi solusinya.
Folatt

1
di mycase, saya menyalin dari lib ke dll dan berhasil
Stalin Gino

21

Masalah symlink?

Saya memiliki pesan kesalahan serupa ketika menggunakan tautan simbolik.

Rupanya systemd tidak mengikuti tautan simbolik, solusinya hanya dengan menyalin atau memindahkan file.

Layanan pengguna?

Saya percaya bahwa Anda perlu menambahkan --userbaris perintah untuk unit di user/:

sudo systemctl --user enable arkos-redis.service

2
Juga masalah symlink di sini.
cweiske

2
Menarik. Itu memang mengikuti symlink ketika saya startmengedit layanan, tetapi enabletidak
Michael Mrozek

Anda benar, symlink tidak berfungsi. Saya akhirnya menggunakan tautan keras.
Bryce Guinta

1
Ingin tahu. Saya menggunakan symlink karena memungkinkan saya git-mengelola file layanan sebagai bagian dari proyeknya, dan tidak apa-apa untuk memulai dan menghentikan, tetapi tidak untuk mengaktifkan. Keterbatasan yang sangat aneh.
rosuav

Di sini dimulai diskusi tentang mengapa memperbolehkan atau tidak symlink: bugzilla.redhat.com/show_bug.cgi?id=955379#c14
jgomo3

1

Mencoba:

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

Saya memiliki masalah yang sama. Jika itu tidak berhasil:

  • sudo strace systemctl enable arkos-redis

Cari di mana kegagalan terakhir terjadi.


0

Saya memiliki masalah yang sama pada Fedora 29.

Ganti: After=network.target
dengan: Requires=network.target

Ini sangat frustasi karena file tersebut jelas ada tetapi sepertinya tidak ada yang mau melihatnya. Tidak ada kegagalan dari analisis sistem dan baik. Itu hanya menunjukkan sebagai 'buruk' di bawah systemctl --list-unit-files.


-1

Menerima kesalahan ini di Redhat saat file unit kosong

Cannot send after transport endpoint shutdown
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.