ログイン/ブート/スタートアップ時に .sh を起動する

ログイン/ブート/スタートアップ時に .sh を起動する

私は気が狂い始めていると思います。今までにいくつかのことを試しましたが、何も効果がありません。

これは Ubuntu 22.04 LTS デスクトップ バージョンです。

私はこのガイドを試しました: https://www.baeldung.com/linux/run-script-on-startup

私のスクリプト ファイルは非常にシンプルで、この IP / ページを使用してキオスク モードで Chromium ブラウザーを起動します。

chromium-browser -kiosk -incognito https://google.com

このファイルを/usr/local/にtiles.shとして保存し、chmod +x tiles.shを実行しました。

私が試した最初のオプション: crontab -e | に以下を追加しました:

@reboot root /usr/local/tiles.sh

2 番目に試したのは、ホーム フォルダーの一番下の行にある .profile に追加することです。何も起こりません...

sh /usr/local/tiles.sh

その後、Ubuntu に組み込まれている「スタートアップ アプリケーション設定」を使用しようとしましたが、やはり何も起こりませんでした... https://itsfoss.com/manage-startup-applications-ubuntu/

Name; Tiles, Path: /usr/local/tiles.sh, I didn't add any comments.

4つ目は、systemctlにtiles.serviceを追加することです。

[Unit]
description=Tiles
[Service]
Type=simple
ExecStart=/bin/bash /usr/local/tiles.sh
[Install]
WantedBy=multi-user.target

chmod 644 /etc/systemd/system/tiles.service

systemctl タイルを有効にするサービス

systemctl タイルサービスを起動します

リブート


それで、誰か私がここで何を間違っているのか教えてもらえますか?

編集:

  • そこで、/が欠落しているコピー&ペーストエラーを修正し、パスが不完全に見えるようにしました

  • コメントによると、「crontab -e」は「起動時」のものだけを対象としているため、これは機能しないとのこと。

答え1

クロンは独自のPATHこれはハードコードされており、次のように設定されます。

/usr/bin:/bin

つまり、これら 2 つのディレクトリにインストールされたプログラムだけが、cron を通じて名前で起動できます。Firefox は にインストールされるため/usr/bin/firefoxfirefoxcron が見つけるには十分ですが、chromium は snap パッケージとしてインストールされるため、おそらく にあります/snap/bin/chromium。つまり、スクリプトは として見つけることができずchromium、代わりにフルパスが必要になります。スクリプトを次のように変更すると、動作するはずです。

/snap/bin/chromium-browser -kiosk -incognito https://google.com

type command一般的に、コマンドへのパスを見つけるには、を実行します。 すると、type chromium-browser実行可能ファイルへのパスが示されます。

答え2

修正方法はsudo apt purge chromium-browser -yFirefoxに切り替えることです

関連情報