linux启动应用脚本,「Linux」- 自动启动脚本或应用程序

「Linux」- 自动启动脚本或应用程序

更新日期:2020年08月30日

@IGNORECHANGE

本文介绍的的是:在系统中发生某些事件时,如何自动执行脚本,或者如何启动桌面应用程序。

文章主要的内容参考了ArchWiki/Autostaring中的介绍,然后加入了一些补充说明。

在系统启动和关机时

在用户登入和登出时

时间事件

按日期、时间进行周期的执行:

systemd/Timers

Cron

在某个日期和时间执行一次:

systemd/Timers

at

systemd/Timers中涵盖了Cron及at的功能。

在文件系统事件发生时

通常使用inotify实现,由下面这些工具:

inotify-tools (see some examples)

Incron

fswatch

在SHELL的登入或登出时

在Xorg启动时

可以通过下面两个配置文件实现:

xinitrc,如果你使用xinit手动启动Xorg。

xprofile,如果你使用了显示管理器。

在桌面环境启动时

大多数桌面环境实现了XDG Autostart,如果可以参考相关ArchWiki中桌面环境的Autostart部分的介绍:

在窗口管理器启动时

可以参考桌面管理器在ArchWiki中的文章,文章中的Autostart部分中有相关的介绍:

我现在使用的窗口管理器是FVWM,但是没有Arch中没有相关的Autostart介绍。可以通过Fvwm中的InitFunction实现应用的自启动。

关于使用XDG自动启动应用的问题

在XDG自启动规范中定义了一种方法,用于在桌面环境启动、可移动介质装入时,自动启动桌面条目(通常.desktop文件)。这种方法需要将桌面条目放置在特定的目录中。

注意,虽然XDG工具包中提供了很多命令,但是这些命令中并不包含自启动脚本。什么意思呢?就是说对于XDG自启动,需要桌面环境的支持。XDG只是一个统一的规范。XDG自启动规范只是定义了那些目录中的存放的桌面条目应该被启动,但并不负责启动。

如果你的桌面环境不支持XDG自启动规范,则需要安装独立的应用来进行程序的自启动。比如,dex,dapper,fbautostart。这些应用也不会自动启动,仍需要你配置它们来进行启动,但是它们兼容XDG自启动规范,启动这些应用后,它们会去启动特定目录中的XDG条目。

在FVWM中,自启动桌面应用

目前,我使用的办法是使用dex来启动XDG规范中特定目录中的桌面条目。通过在FVWM的配置文件中加入如下配置:

AddToFunc InitFunction

+ I Exec exec dex -a

在初始化的时候启动应用。

参考文献

更新日志

06/14/2018 创建文章,解决FVWM中几个应用自启动的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值