File.service は、/etc/systemd/system ディレクトリに自動的に作成されます。

File.service は、/etc/systemd/system ディレクトリに自動的に作成されます。

Linuxでjarをサービスとして実行するにはどうすればよいですか?すべてのガイドでは、/etc/systemd/systemフォルダにfile.serviceを作成する必要があることがわかります。ファイルを生成するコマンドを使用してスクリプトを作成したいのですが、各コマンドはSUDOを要求してパスワードを入力してみましたが、パスワード入力をバイパスしてスクリプトのすべての内容が自動的に行われるようにしたいと思います。誰でも助けることができますか?

別のフォルダにファイルを作成し、cpコマンドを使用してコピーしてみましたが、まだパスワードを入力する必要があります。 echo "XXX" > "/etc/stsyemd/system/filename.service" コマンドを試しましたが、権限が拒否されました。

答え1

通常、sudoを使用するスクリプトでは「パスワードをバイパスする」ことはできません(設定を編集することはできますが、期待どおりに最初sudoに設定を使用する必要がありますsudo)。これがユーザー分離のすべてです。

したがって、あなたが望むことは不可能です。認証なしでrootになるスクリプトを書くことができる場合、ユーザーがrootができるすべての破壊的な操作を実行できないようにすることは意味がありません。

スクリプトの内容はすべて自動的に行われます。

これらのインストールスクリプトはルートによって実行されると合理的に想定できるため、スクリプト自体はそれを処理する必要はありませんがsudo(内部ではなく全体的に)実行できます。

他にも「I want to run a jar」というメッセージは、/etc/systemd/systemにサービスをまったくインストールしないで、代わりにsystemd/userの~/.config/にユーザーサービスをインストールすればよいと提案できます。現在、ユーザーには特別な権限は必要ありません。したがって、ルートアクセスもなくsudo

答え2

sudoでパスワードをバイパスするのは簡単です。

  1. 行を追加
youruser_ID ALL=(ALL) NOPASSWD:ALL

sudoersファイルに追加します(visudoを使用)。もうパスワードを入力しないでください!

または 2) 行を追加

Defaults timestamp_timeout=60

Defaults env_reset以下のsudoersファイルにあります。これでこれが可能になりsudo id、パスワードの入力を求められますが、残りの時間はsudoパスワードなしで実行できます。

ただし、通常、ファイルをインストールするスクリプトは/etc/systemd/systemrootとして実行する必要があります。だから

sudo install_script

より良い選択になります。

関連情報