Windowsの起動に対応するLinuxは何ですか?

Windowsの起動に対応するLinuxは何ですか?

システムが起動するたびに実行されるように、Linuxの起動にアプリケーション/スクリプトを追加する方法はありますか?

自動化された方法を探しています。つまり、ユーザーはクローン操作や同様の方法で追加しないでください。

答え1

それはまるでクローナ

メモ@reboot項目

これは最も柔軟な方法であり、Windowsのスケジュールされたタスクに最も似ています(実際にはより良い)。

答え2

Xorgが自動的に起動します。

システムレベルの起動スクリプトに加えて、デスクトップ環境にはプログラムを自動的に実行する独自の方法があります。このフォルダは、.config/autostart自動実行エントリを定義するデスクトップに依存しない方法である必要があります。/etc/xdg/autostartシステム全体の構成の場合。仕様の詳細については、以下をご覧ください。http://developer.gnome.org/autostart-spec/

LXDE自動起動項目はでも使用できます~/.config/lxsession/LXDE/autostart

スクリプトを実行する必要がある場合は、状況が若干異なります。後ろにネットワークが稼働中です。この場合、ネットワーク管理者が定義できる特別な接続後スクリプトがあることを確認する必要があります。両方ネットワーク管理者そして世界文化センター接続後に自動的に実行される項目を指定する独自の方法があります。ネットワークを構成している場合は、このフォルダifupdownにポストスクリプトを配置できます。/etc/network/if-up.d/ただし、接続後にスクリプトを実行するより良い方法は、おそらくシステム化されています(これをサポートするシステムの場合、最も近代的なディストリビューションです)。

システムサービスによる自動起動

デスクトップを必要としないグラフィックアプリケーションを自動起動するには、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次のように短縮できます。

注:これを試したことがある場合は、croncrontabエントリが限られた環境で動作することがわかります。同様に適用されますsystemd。絶対パスは常に使用され、定義された変数については何も仮定されません。スクリプトが依存するすべての変数を明示的に設定します。systemd 〜しないだろうユーザーのと.bashrcを使用してください$PATH

追加情報:

答え3

rc.localはい、または/etcディレクトリ/etc/rc.d内の実行可能ファイルへのパスを定義して、Linuxで起動時にプログラムを実行できます。例:

#!/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.

答え4

各ディストリビューションは独自のブート技術を使用しているため、ディストリビューションのドキュメントを確認してください。 /etc/rc.localはいくつかの自動化スクリプトを置くことができる場所ですが、実際には古いです。今日、ほとんどのLinuxベースのシステムは実行レベルまたはシステムブートを使用しているため、自動的に開始されるほとんどのタスクを細分化できます。

関連情報