我想要自动启动一个包含多个命令的程序。
以下是我的 3 个独立命令:
sleep 3s
cd /home/user/programdir/lpfw/
gksudo ./lpfwpygui
我的命令是sleep 3s;cd /home/user/programdir/lpfw/;gksudo ./lpfwpygui
。
如果从终端手动运行,它可以正常工作,但我无法让它从自动启动条目中工作。
有任何想法吗?
答案1
尝试使用您的命令创建一个脚本并从自动启动条目运行该脚本:
#!/bin/sh
sleep 3s
cd /home/user/programdir/lpfw
gksudo ./lpfwpygui
您还应该尝试睡眠更长时间,3 秒可能不足以让桌面环境完成加载,并且由于您使用 gksudo,这可能会导致问题。
答案2
在自动启动中,如果 shell 执行多个命令,则可以按顺序运行它们:
Exec=bash -c "cmd1 ; cmd2 ; cmd3"
或者就你的情况而言:
Exec=bash -c "sleep 3s;cd /home/user/programdir/lpfw/;gksudo ./lpfwpygui"
这可能也适用于 bash 以外的其他 shell,但使用其他语法。