Linuxの起動にアプリケーション/スクリプトを追加して、システムが起動するたびに実行されるようにする方法はありますか?
自動化された方法を探しています。つまり、ユーザーはcronジョブなどでこれを追加しないでください。
Linuxの起動にアプリケーション/スクリプトを追加して、システムが起動するたびに実行されるようにする方法はありますか?
自動化された方法を探しています。つまり、ユーザーはcronジョブなどでこれを追加しないでください。
回答:
システムレベルの起動スクリプトとは別に、デスクトップ環境にはプログラムを自動実行する独自の方法がある場合があります。このフォルダ.config/autostart
は、自動実行エントリを定義するデスクトップ中立な方法であると想定されています。/etc/xdg/autostart
システム全体の構成用です。http://developer.gnome.org/autostart-spec/にある仕様の詳細。
LXDEの場合、自動開始エントリもで設定できます~/.config/lxsession/LXDE/autostart
。
ネットワークの稼働後にスクリプトを実行する必要がある場合は少し異なります。その場合は、ネットワークマネージャー用に定義できる特別な接続後スクリプトを確認する必要があります。両方のNetworkManagerとwicd、接続後の自動実行エントリを指定する独自の方法を持っています。ネットワークがを介して構成されているifupdown
場合、ポストアップスクリプトを/etc/network/if-up.d/
フォルダーに配置できます。ただし、接続後スクリプトを実行するためのより良いアプローチはsystemd(それをサポートするシステムの場合です。これは現代のディストリビューションの大部分です)。
自動起動したいものがデスクトップを必要とするグラフィカルアプリではない場合、xorgまたは現在のデスクトップ環境で提供されている自動起動機能を使用しないことをお勧めします。
systemd
現代の多くのディストリビューションで広く普及しており、サービスの開始方法と実行方法に関して多くの制御と柔軟性を提供しています。
いくつかの利点を要約します(systemdにはもっと多くのことができます):
User=myuser
Restart=on-failure|on-watchdog|on-abnormal|always
Type=simple|forking|oneshot|notify|dbus
Wants=network-online.target
で[Unit]
セクション)。telegram-cliデーモンを開始するサンプルサービス。に配置し/etc/systemd/system/tg.service
ます。
[Unit]
Description=MyDaemon
Wants=network-online.target
After=network-online.target
[Service]
ExecStart=/usr/local/bin/telegram-cli -k /etc/telegram-cli/tg-server.pub -W -P 1234 -d -vvvRC
ExecStop=/usr/bin/pkill -f telegram-cli
User=jicu
[Install]
WantedBy=multi-user.target
これで、サービスの自動開始を有効にできます。
sudo systemctl enable tg
サービスを開始します。
sudo systemctl start tg
サービスを停止します。
sudo systemctl stop tg
ステータスを確認します。
systemctl status tg
サービスを無効にします。
sudo systemctl disable tg
余分な入力を省くために~/.bashrc
、行に追加して、alias sc='sudo systemctl $*'
上記のコマンドをに短縮できますsc start tg
。
注:使用した場合
cron
、crontabエントリは制限された環境で実行されることに注意してください。同じことがsystemd
常に適用されます。常に絶対パスを使用し、変数が定義されることを想定しません。スクリプトが依存する変数を明示的に設定します。ユーザーのとsystemd
は使用しません。.bashrc
$PATH
より詳しい情報:
はい、で実行ファイルへのパスを定義することにより、Linux上で起動時にプログラムを実行することが可能であるrc.local
のその存在のいずれか/etc
または/etc/rc.d
ディレクトリ、例えば:
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.
touch /var/lock/subsys/local
/path/to/executable
注:ファイルのドキュメントで説明されているように、実行可能権限を割り当てることを忘れないでください。 Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure that this script will be executed during boot.
Startup applications
ホームボタンを使用して検索Add
Startup command box
コマンドを入力します。OK
(リストに新しいコマンドが表示されるはずです)Close
再起動するか、ログアウトして再度ログインしてテストします。
ソース:https : //help.ubuntu.com/community/AddingProgramToSessionStartup
私はここに答えを見つけました:https : //stackoverflow.com/questions/7221757/run-automatically-program-on-startup-under-linux-ubuntu ファイル/スクリプトを作成して、トラックパッドをオフにすることができましたLinux Ubuntu 12.10セッション。