システムサービスの初期化中にラムディスクを作成し、作成後および「基本」サービスプロセスが開始された後にいくつかのコマンドを実行する方法はありますか?
基本的に私が達成したいのは、Postgresデータベース(たとえばsudo systemctl start postgresql@13-my_db
)を起動するときに最初にRAMディスクを作成し、セキュリティストアからTLS証明書と秘密鍵を読み取るスクリプトを実行し、正しい権限を使用してそのRAMディスクに保存することです。 。 PostgresはそのRAMディスクからファイルの読み取りを開始できます。
また、サービスが停止すると、システムによってRAMディスクが自動的に削除されるため、そのファイルは消えます。
可能ですか?私が見つけた唯一の方法は、TemporaryFileSystem
関数を使用してRAMディスクを作成し、ExecStartPre
それを使用してファイルをインポートするスクリプトを実行することです。
これはうまくいきますが、残念ながらsystemdは呼び出し間でRAMディスクをアンマウントするように見えるExecStartPre
ため、ExecStart
Postgresデータベースが起動するとRAMディスクは使用できなくなります。