今systemdに答えがあります。

今systemdに答えがあります。

Ubuntu 15.04には次のファイルがあります。/usr/local/bin/myscript(私が作ったスクリプトです。)

マイアカウントでこのコマンドを実行すると、rootとして実行するために必要な操作が実行されます。sudo /usr/local/bin/myscript

今やりたい/usr/local/bin/myscriptコンピュータの起動時にルートとして実行されます(パスワードを入力せずにsudoコマンドを実行するのと同じ)。 Ubuntu 15.04ではどうなりますか?

答え1

今systemdに答えがあります。

Ubuntuバージョン15を使用しています。あなたは体系化しました。 /etc/rc.localせいぜいsystemdの以前のバージョンとの互換性メカニズムです。以下のハイパーリンクでリンクされたAskUbuntuの質問に表示されている混乱を使用すると、ひどく間違っている可能性があります。したがって、適切なシステムサービスユニットを作成してください。

/etc/systemd/system/ローカル、非システム、および非パッケージのサービスユニットを作成するので、そのタイプのユニットがある場所にユニットファイルが配置されます。ただそう呼んでください/etc/systemd/system/myscript.service。これには以下が含まれます。

[単位]
説明=user2580のスクリプト
ドキュメント=https://unix.stackexchange.com/questions/202698/

[提供する]
タイプ=シンプル
ExecStart=/usr/local/bin/myscript

[インストールする]
WantedBy =マルチユーザー。ターゲット

スクリプトが「デーモン用」に分岐している場合は、そうしないようにしてください。それは完全に不要です。

  • systemctl preset myscript.service起動時に自動的に起動するには、スーパーユーザーとして実行してください。
  • systemctl start myscript.service手動で起動するには、今すぐ実行(スーパーユーザーとして)してください。
  • 実行しsystemctl status myscript.serviceてステータスを確認してください。

Xサーバーと通信できるコンテキストではスクリプトは実行されません。 Xサーバーが起動する前に実行することもできます。ただし、Xクライアントになるための要件については言及しておらず、HOME初心者には複雑な環境変数やその他の問題についても言及していません。とにかく、これらは他の質問のトピックです。だから私はそのままにします。

追加読書

答え2

.NETでスクリプトを呼び出す行を追加するだけです/etc/rc.local。このファイルは最後のinitスクリプトの実行です。

/etc/rc.local実行可能でルートが所有していることを確認してください。

答え3

あなたはそれを使用することができますgksudo:-

NAME
       gksu - GTK+ frontend for su and sudo


DESCRIPTION           
       gksu is a frontend to su and gksudo is a frontend to sudo.  Their primary purpose is to run graphical commands
       that need root without the need to run an X terminal emulator and using su directly.
  • スタートアップアプリを開きます(システム設定>スタートアップアプリまたはgnome-session-properties)。
  • 次のコマンドを使用して新しいエントリを追加します(gksudo myscriptまたはgksudo /usr/local/bin/myscript):-

スクリーンショット

[追加]をクリックすると、デスクトップの起動/ログイン時にこのスクリプトが実行されます。


メモ:-gksu使用する前にインストールされていることを確認してくださいgksudo。 (経由でインストールできますsudo apt-get install gksu


別の方法は、次のように動作するAskpassプログラムを使用することですsudo -A

-A, --askpass
                 Normally, if sudo requires a password, it will read it from the user's terminal.  If the -A
                 (askpass) option is specified, a (possibly graphical) helper program is executed to read the user's
                 password and output the password to the standard output.  If the SUDO_ASKPASS environment variable
                 is set, it specifies the path to the helper program.  Otherwise, if sudo.conf(5) contains a line
                 specifying the askpass program, that value will be used.  For example:

                     # Path to askpass helper program
                     Path askpass /usr/X11R6/bin/ssh-askpass

zenityAskpassヘルパーとして使用する例です。

関連情報