Debian StretchシステムにGitLab Community Packをインストールしようとしていますが、redis-server
systemdを使用してサービスを起動すると、その依存関係の1つはインストールされません。
完全なログ:
$ sudo dpkg --configure redis-server
Setting up redis-server (3:3.2.5-4) ...
Job for redis-server.service failed because the control process exited with error code.
See "systemctl status redis-server.service" and "journalctl -xe" for details.
invoke-rc.d: initscript redis-server, action "start" failed.
● redis-server.service - Advanced key-value store
Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)
Active: activating (auto-restart) (Result: exit-code) since Thu 2016-12-15 15:00:17 UTC; 31ms ago
Docs: http://redis.io/documentation,
man:redis-server(1)
Process: 8764 ExecStart=/usr/bin/redis-server /etc/redis/redis.conf (code=exited, status=227/NO_NEW_PRIVILEGES)
Process: 8761 ExecStartPre=/bin/run-parts --verbose /etc/redis/redis-server.pre-up.d (code=exited, status=227/NO_NEW_PRIVILEGES)
Main PID: 24283 (code=exited, status=227/NO_NEW_PRIVILEGES)
Dec 15 15:00:17 Serverdatorn-Debian systemd[1]: redis-server.service: Unit entered failed state.
Dec 15 15:00:17 Serverdatorn-Debian systemd[1]: redis-server.service: Failed with result 'exit-code'.
dpkg: error processing package redis-server (--configure):
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
redis-server
実行可能ファイルを手動で実行してredis-serverを起動すると、正常に動作します。
$ sudo /usr/bin/redis-server /etc/redis/redis.conf
$ sudo tail /var/log/redis/redis-server.log
...
* The server is now ready to accept connections on port 6379
追加情報が必要な場合はお知らせください。
編集する:
ファイルからNoNewPrivileges
設定を試しyes
て再ロードしてから再起動してみましたが、幸運ではありませんでした。同じエラーが発生しました。私はランニングを通して役立つかもしれない別のメッセージを見つけたことを発見しました。no
redis.service
journalctl -xe
redis-server.service: Failed at step NO_NEW_PRIVILEGES spawning /usr/bin/redis-server: Invalid argument
答え1
おそらくあなたもこの結果を経験していると思います。systemd
新しい権限なし =指示する。このredis-server
パッケージがUbuntu 16.04システムで一般的に利用可能であると仮定すると、これは、システムがNoNewPrivileges=
Redis起動失敗を引き起こすグローバル設定または関連ガイドラインをカスタマイズできることを示します。
NoNewPrivileges=
aboutおよび関連ディレクティブにリンクされている文書を読み、ディレクトリから検索して/etc/systemd/
これらの値がシステムでカスタマイズされていることを確認してください。そうでない場合は、 redis
インストールするパッケージがインストールされているオペレーティングシステムのバージョンで実際にサポートされていることを確認してください。
答え2
この問題は2017年12月にDebianのバグとして提起されましたが、サービスを修正せずにバグが終了しました。 Chris Lambが要求した詳細がある場合は、提供してください。
同様の問題が2017年7月にManaDB for Debian用10.1パッケージで報告され、パッケージがDebianから削除されたときに閉じられ、修正されませんでした。
ㅏローカル修正サービス設定を次に変更します。
新しい権限なし=いいえ プライベートデバイス=いいえ
/etc/systemd/system/redis.service
編集したり直接話したりしないでください/usr/lib/systemd/system/redis-server.service
。後者はローカル管理者が手動で編集しないでください。前者はDebianパッケージに付属している実際のサービス単位ファイルではありません。
代わりにsystemctl edit redis.service
、以下を使用して作成します。ユニット挿入ファイルそしてそこに設定を入れてください。これはまた、daemon-reload
ユニットファイルを手動で変更したい場合に手動で実行する必要があることを暗黙的に実行します。
ソースパッケージで見つけたい場合:パッケージされたファイルredis.service
と[email protected]
ファイルはDebianプログラムと呼ばれるDebianプログラムによって生成されます。generate-systemd-service-files
。
これは、Debian の人々が作成しパッケージ化したサービスユニットでシステム調整メカニズムを使用するときに人々が直面するいくつかの問題の 1 つです。もう1つの問題は、そのProtectHome=yes
設定/home
が実行パッドエラーのときにシンボリックリンクが機能しなくなり、ReadOnlyDirectories=/
StackOverflow Q&Aがその設定によって226 / NAMESPACEエラーコードを生成することです。これ地元の修正はすべての項目に対して同じ形式をとります。つまり、設定が上書きされた埋め込み単位ファイルです。
追加読書
- マウロ・ジリアーニ(2017-12-19)。 redis-serverがコード227 / NO_NEW_PRIVILEGESで終了しました。。 Debian のバグ #884764.
- アンドリューフレンチ(2016-11-01)。 16.04から16.10にアップグレードした後、redis-serverを起動できません。。ランチパッドのバグ#1638410。
- https://stackoverflow.com/a/48496530/340790
- オズロイ回門(2017-07-03)。 NO_NEW_PRIVILEGES(systemd) により mariadb のインストールが失敗します。。 Debian のバグ #867137.
- systemctl - サービス終了コードとステータス情報の説明
答え3
正しく機能させるには、systemdサービスファイルでPrivateDevices = falseを設定できます。
答え4
私の場合、以前のバージョンのDebianの古いLinuxカーネルを実行していましたが、複数のサービスが「(code = exited、status = 227 / NO_NEW_PRIVILEGES)」エラーで起動できませんでした。たとえば、
ExecStart=/lib/systemd/systemd-logind (code=exited, status=227/NO_NEW_PRIVILEGES)
現在、デプロイカーネルをインストールしてsudo apt-get install linux-image-amd64 && reboot
問題を解決しました。