CentOSでupstartスクリプトを使用してGUIアプリケーションを起動しようとしています。/etc/init /フォルダーにテストスクリプトがあります。
start on desktop-session-start
stop on desktop-shutdown
respawn
script
export DISPLAY=:0
sleep 5
exec /.1/Projects/UpstartTest/start.sh &
end script
start.shスクリプトは、GUIアプリケーションのバイナリファイルを実行しています。
コンピュータを再起動した後。入力すると:
[root@mg-CentOS ~]# initctl status test
test stop/waiting
だから私の新興企業は実行されていません。入力すると
initctl開始テスト
手動で問題なく動作します。
ユーザーのログイン(デスクトップが開始された)後にこのupstartスクリプトを実行するにはどうすればよいですか?私は新興向けのCentOSの詳細なドキュメントを見つけようとしていますが、ありません。
On centos 7を使用して、GUIでgnome-session-properties
を編集します。
これにより、.desktop
に~/.config/autostart/
ファイルが追加されます。または、.desktop
ファイルを自分でコピーすることもできます。
自動起動アプリ/サービスが散在しています...
すべての自動起動アプリケーションを一覧表示するには、autostartを検索します。
ls -1 "/etc/xdg/autostart" "/home/$USER/.config/autostart" \
"/usr/share/gdm/autostart" "/usr/share/gnome/autostart"
すべての自動開始を一覧表示するにはServices:
systemctl list-unit-files --type=service
# OR search for:
ls -1 /lib/systemd/system/*.service /etc/systemd/system/*.service
すべてのInitスクリプトをリストするには:
ls /etc/init.d/
すべてのCronTabスケジューラーをリストするには:
crontab -l
# to edit run: crontab -e
Xセッションがないため、起動に失敗すると思います。 DISPLAY:0
そのディスプレイは現在upstart
サービスではなくユーザーが使用しています。
基本的に、upstart
はアプリケーションを起動するために設計されたのではなく、システムサービスを起動するように設計されています。
代わりに、*.desktop
エントリ~/config/autostart
そして私は gnome-Tweak-tool
スタートアップアプリケーションを管理することもできます。
*.desktop
エントリは次のようになります。
[Desktop Entry]
Name=MyCoolScript
GenericName=A really cool script
Comment=Some description about your script
Exec=/.1/Projects/UpstartTest/start.sh
Terminal=false
Type=Application
X-GNOME-Autostart-enabled=true
仕様の詳細については Gnome開発者のWebサイト を参照してください。
Centos 7サーバーでcronを使用するとうまくいきました。
# enter crontab edit
crontab -e
# place this inside the cron file you opened with the previous command
@reboot /path/to/your/script.sh
スクリプトを実行可能にすることを忘れないでください。