首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从bash脚本中运行后台命令作为i3wm的自动启动

从bash脚本中运行后台命令作为i3wm的自动启动
EN

Unix & Linux用户
提问于 2019-10-02 23:03:36
回答 1查看 5.7K关注 0票数 1

我正在配置我的i3窗口管理器(第4版),有时我认为自动开始使用它的本机execexec_all失败。(*)

因此,我决定创建一个i3_autostart.sh脚本,在一个有组织的地方添加我需要的所有东西。就像KDEGNOME有自己的文件夹那样。

脚本是从~/.config/i3/config调用的,代码行如下(**):

代码语言:javascript
复制
exec_always --no-startup-id /home/beco/.config/i3/i3_autostart.sh

然后输入Autostart脚本,它只调用一个函数来运行我想要自动启动的每个程序。这就是一个例子:

代码语言:javascript
复制
Autostart()
{
    # why, o my?
    sleep 1

    # set keyboard bindings
    xkbcomp -w 0 /home/beco/.config/xkbmap_kde $DISPLAY

    # toggle touchpad
    /home/beco/bin/touchpad off 

    # set wallpaper
    feh --bg-scale /home/beco/Pictures/wallpaper/Stonehenge-Desktop-Wallpaper-i3help.png

    # clipboard
    parcellite

    # network manager
    nm-tray

    # why, o my?
    sleep 1

}

除了nm-tray之外,所有程序都启动得很好。我尝试过几种命令组合和技术,但都没有效果。

据我所见,问题是nm托盘喜欢运行前台,但需要运行后台,据我所知,它没有在命令行中设置它的选项。因此,我们需要使用bash设施。

在这里,我的尝试:

  1. 简单背景
代码语言:javascript
复制
    # network manager
    nm-tray &
  1. 试图不承认
代码语言:javascript
复制
    # network manager
    nm-tray &>/dev/null &
    disown $!
  1. 不承认和不承认
代码语言:javascript
复制
    # network manager
    nohup nm-tray &>/dev/null &
    disown $!

我甚至试图让整个自动启动脚本在后台,只是为了确保nm-托盘继续运行:exec_always --no-startup-id /home/beco/.config/i3/i3_autostart.sh &>/dev/null &

我看到剪贴板图标,键盘图标。Touchpad设置为off。但奈米托盘图标坚持不工作。

有什么建议吗?谢谢。

@drbeco

(*)我读过一些错误报告,但这个问题不是关于解决那个问题的。这只是为了创造一个好的解决办法,我可以依赖,而问题继续。

(**) exec_always的这一行从未失败过,所以我对它很在行。

EN

回答 1

Unix & Linux用户

发布于 2019-10-13 19:08:01

唯一拒绝在后台运行(或在后台不工作)的程序是需要终端的程序。您的问题是nm-tray根本没有运行,因为您没有在后台启动parcellite。因此,只需在这两行的末尾添加符号(如果您启动了其他长期运行/持久的程序,这些程序本身并不独立,但我认为目前您的列表中没有任何代码),并在脚本末尾添加一个不承认的内容,以避免脚本停留在那里等待程序完成。

试着用这个块代替上面的示例:

代码语言:javascript
复制
Autostart()
{
    # why, o my?
    sleep 1

    # set keyboard bindings
    xkbcomp -w 0 /home/beco/.config/xkbmap_kde $DISPLAY

    # toggle touchpad
    /home/beco/bin/touchpad off 

    # set wallpaper
    feh --bg-scale /home/beco/Pictures/wallpaper/Stonehenge-Desktop-Wallpaper-i3help.png

    # clipboard
    parcellite &

    # network manager
    nm-tray &

    # detach the started background programs
    disown
    # why, o my?
    #sleep 1

}
票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/544840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档