如何在 Ubuntu 上建立网络连接后自动启动程序?

如何在 Ubuntu 上建立网络连接后自动启动程序?

如何在网络连接后在 lubuntu 中自动启动 chromium?

我尝试将其添加到 ~/.config/autostart/ 但 chromium 在 wifi 连接之前启动,因此显示错误页面。

我已经通过 Google 搜索过但仍然找不到任何解决方案。

答案1

我不知道有什么优雅的方法,但这是一种应该可行的方法。

编写一个脚本来测试您是否在线。如果不在线,则休眠一段时间,然后循环回来再次测试。当您在线时,启动 chrome 并退出,等等。将该脚本放入您的自动启动目录中。

在 bash 中,wait 命令是 sleep。它接受一个参数,即您要等待的秒数。它可以防止脚本测试过于频繁并耗尽资源。

诀窍是确定您是否在线。一种方法是做一些小事,如果您不在线,这些小事就会失败。下面是一个技巧,应该足以让您入门(如果您了解 bash)。我在网上的某个地方找到了 wget 命令技巧,我不确定它到底是做什么的,但它很快而且有效。

您必须用 chrome 路径替换您的路径。

chrome 行末尾的 & 符号使 chrome 在后台执行,因此您的脚本不会挂在该行直到 chrome 退出。它将继续并正常终止,而 chrome 则自行运行。

如果您想更进一步,有一种方法可以将任务的进程 ID 保存到文件等,这样如果您决定在特定会话中上线时不启动 chrome,您可以轻松找到它并在稍后将其终止。但是,这有点超出了您的问题范围。(我不记得怎么做了 ;) )

#!/bin/bash

function online {
  ## Test if online - prototype code
  wget -q -O /dev/null --timeout=5 http://udc.msn.com/c.gif
  return $?
}

until online
do
  sleep 5
done

/opt/google/chrome/google-chrome &

答案2

工作示例...

#!/bin/bash

function online {
  ## Test if online - prototype code
  ping -c 1 google.com 
  return $?
}

until online
do
  sleep 5
done

vmware-view %u --nonInteractive &

答案3

我认为下面的应该可以工作,但我假设你~/.config在你的~/.bashrc

确保你的 bashrc 路径设置如下

export PATH=$PATH:$HOME/.config:/other/stuff

代替

export PATH=$HOME/.config:/other/stuff:$PATH

您的系统范围的 PATH 设置在哪里- 您要确保在登录时在主页设置之前读取$PATH自动启动文件。/etc/xdg/autostart

相关内容