GNU/Linux >> Linux の 問題 >  >> Linux

root アクセスで実行するように Systemd サービスを構成する

解決策 1:

<ブロック引用>

sudo でサービスを実行するように systemd に指示します ?

sudo それとは何の関係もありません。

通常、User= を使用して特定のユーザー/グループとしてサービスを実行するように systemd に指示します。 と Group= [Service] のディレクティブ ユニットファイルのセクション。

これらを root に設定します (または、root として実行するのがデフォルトであるため、それらを削除します)。

解決策 2:

クリアするには systemd システム サービスはデフォルトで root として実行されますが、デフォルトの動作と User=root でのシステム サービスの実行にはまだ違いがあります。 .

生成されたプロセスの環境変数に記載されているように、これらの変数は User= の場合にのみ設定されます 設定されています:

$USER, $LOGNAME, $HOME, $SHELL

この発見を確認するためにテストしました。したがって、上記の変数のいずれかが必要な root として systemd サービスを実行する場合は、User=root を設定する必要があります。 .

解決策 3:

一時的な解決策ですが、ピンチで機能するようになりました:

/usr/bin/sudo /bin/bash -lc 'bundle exec rails server -e demo -p 80'

次のように、systemd ユニット ファイルで sudo 権限を持つユーザーで実行できます。

[Unit]
Description=Rails Webserver
After=syslog.target

[Service]
Type=simple
User=ubuntu
WorkingDirectory=/var/www/webserver
ExecStart=/usr/bin/sudo /bin/bash -lc 'bundle exec rails server -e demo -p 80'
Restart=always
KillSignal=SIGQUIT

[Install]
WantedBy=multi-user.target

Linux
  1. Linux – SystemdでTtyを減らす方法は?

  2. Sudoを使用したリダイレクトまたはパイピングを含むコマンドを実行するにはどうすればよいですか?

  3. 自動マウント後、アクセス後にSystemdサービスを実行しますか?

  1. systemd でのシャットダウン時に、他のすべての前にスクリプトを実行するにはどうすればよいですか?

  2. rootオプションでPHP-FPMを自動起動

  3. シャットダウン直前にsystemdでスクリプトを実行する方法は?

  1. LinuxでSystemctlを使用してSystemdサービスを管理する方法

  2. Linux – Systemdで30分ごとにスクリプトを実行しますか?

  3. サービスファイルは存在しますが、systemd によって検出されません