web-dev-qa-db-ja.com

コマンドラインからスタートアップアプリケーションにスクリプトを追加する方法は?

シェルスクリプトがあります。起動時にスクリプトが自動的に実行されるように構成したい。 GUIからこれを行う方法を知っています。しかし、私はこれをターミナルからやりたかった。これどうやってするの?

一次調査で、ファイルを/etc/int.d/ディレクトリに移動する必要があることがわかりました。ただし、この操作にはSudo権限が必要です。 スーパーユーザー権限なしでこれを実行したかった

また、~/.config/autostart/の下に、スタートアップアプリケーションに関する設定があるファイルがあることもわかりました。しかし、これを達成するためにそれらを編集する方法がわかりません。

誰かがこれを達成するための正確な手順を教えてもらえますか?

19

コマンドラインからスタートアップランチャーを設定する方法

質問で述べたように、コマンドはログイン時にランチャーを~/.config/autostartに配置することで実行できます。ランチャーはスクリプトの起動にのみ使用されるため、作成された.desktopファイル:少なくとも必要なキーワード/行:

[Desktop Entry]
Name=name
Exec=command
Type=Application

(オプション)行X-GNOME-Autostart-enabled=trueは、ランチャーの自動起動機能を有効/無効にすると自動的に追加されます(デフォルトではX-GNOME-Autostart-enabled=trueに設定されています)

必須フィールドの詳細については、 こちら をご覧ください。

スクリプト例

コマンドラインからこのようなランチャーを作成するには、スターターの名前とコマンドを引数として実行する小さなスクリプトが必要です。そのようなスクリプトの例を以下に示します。

コマンドで実行した場合:

python3 '/path/to/script' 'Test' 'gedit'

ログイン時にgeditを実行するスタートアップランチャーを作成します。
ランチャーは[ダッシュ]> [スタートアップアプリケーション]にも表示されます。

enter image description here

スクリプト

#!/usr/bin/env python3
import os
import sys
home = os.environ["HOME"]

name = sys.argv[1]; command = sys.argv[2]

launcher = ["[Desktop Entry]", "Name=", "Exec=", "Type=Application", "X-GNOME-Autostart-enabled=true"]
dr = home+"/.config/autostart/"
if not os.path.exists(dr):
    os.makedirs(dr)
file = dr+name.lower()+".desktop"

if not os.path.exists(file):
    with open(file, "wt") as out:     
        for l in launcher:
            l = l+name if l == "Name=" else l
            l = l+command if l == "Exec=" else l
            out.write(l+"\n")
else:
    print("file exists, choose another name")

空のファイルに貼り付け、set_startupscript.pyとして保存し、次のコマンドで実行します。

python3 /path/to/set_startupscript.py '<name>' '<command>'

何をする

  • 名前とコマンドを引数として、~/.config/autostartに基本的なランチャー(スクリプトを実行する必要はありません)を作成します。
  • ~/.config/autostartに名前のランチャーが既に存在する場合、メッセージを出力します:

    file exists, choose another name
    
18
Jacob Vlijm

答えを見つけました

~/.config/autostart/に移動します。 autostartという名前のフォルダーがない場合は、mkdir autostartを使用してその名前でフォルダーを作成します。

次に、yourScript.sh.desktopという名前の次のファイルを追加します

[Desktop Entry]
Type=Application
Exec="/Your/location/to/theScript/yourScript.sh"
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[en_IN]=AnyNameYouWish
Name=AnyNameYouWish
Comment[en_IN]=AnyComment
Comment=AnyComment

できた!

6