Cronのようなものですか?
@reboot
に注意してください エントリー
これは最も柔軟なアプローチであり、Windows の「スケジュールされたタスク」に最も似ています (実際にはより適切です)。
Xorg 自動起動
システム レベルのスタートアップ スクリプトとは別に、デスクトップ環境には独自の自動実行プログラムがある場合があります。フォルダ .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 を使用することです (最新のディストリビューションの大部分である systemd をサポートするシステムの場合)。
systemd サービスとして自動起動
自動起動したいものがデスクトップを必要とするグラフィカル アプリでない場合は、xorg または現在のデスクトップ環境が提供する自動起動機能を使用しないことをお勧めします。
systemd
は多くの最新のディストリビューションで普及しており、サービスの開始方法と実行方法に関して多くの制御と柔軟性を提供します。
いくつかの利点を要約します (systemd はさらに多くのことができます ):
- root または特定のユーザーとして実行します。
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
.
詳細:
- systemd について
- systemd サービス
- systemd ユニット
はい、rc.local
で実行可能ファイルへのパスを定義することで、Linux の起動時にプログラムを実行できます。 /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.
)。