Redisサーバーを使用するEclipseでプログラムをデバッグ/テストしたいので、サーバーをユーザーサービスに切り替えて実行権限を取得することにしました。私を悩ませるのは、サービスを開始または停止できますが、有効/無効にすることはできません。
私が得るエラーは次のとおりです。
Failed to execute operation: No such file or directory
元の /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
編集して/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
システム制御状態:
�� 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
ジャーナルctl:
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
答え1
シンボリックリンクの問題?
シンボリックリンクを使用すると、同様のエラーメッセージが表示されました。
明らかに、systemdはシンボリックリンクに従わず、解決策はファイルをコピーまたは移動することです。
ユーザーサービス?
--user
コマンドラインにユニットを追加する必要があると思いますuser/
。
sudo systemctl --user enable arkos-redis.service
答え2
私の場合、systemdユニットファイルを/etc/systemd/system/...
フォルダのすぐ下に配置しました。に移動/lib/systemd/system
し、systemctlの有効化/無効化コマンドの問題を修正しました。
答え3
努力する:
sudo touch /etc/init.d/arkos-redis
私も同じ問題があります。これがうまくいかない場合:
sudo strace systemctl enable arkos-redis
最後の障害が発生した場所を見つけます。
答え4
私の経験では、これは通常サービスがブロックされたときに発生します。
~]# systemctl status zabbix-agent
● zabbix-agent.service
Loaded: masked (/dev/null; bad)
Active: inactive (dead)
~]# systemctl is-enabled zabbix-agent
masked
~]# ls -l /etc/systemd/system/zabbix-agent.service
lrwxrwxrwx. 1 root root 9 Feb 29 2020 zabbix-agent.service -> /dev/null
~]# systemctl unmask zabbix-agent
Removed symlink /etc/systemd/system/zabbix-agent.service.
~]# systemctl enable zabbix-agent
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent.service to /usr/lib/systemd/system/zabbix-agent.service.
いったん明らかになったらアクティブにすることができます。
これが誰かに役立つことを願っています。