我正在尝试运行终端命令,因此终端窗口仅显示在任务栏中,甚至根本不显示。有一些使用 xdotool 或 wmctrl 的方法,但它们有效,因此窗口会显示片刻然后消失。这对用户来说很烦人。
因此,方法是安装具有最小化模式启动开关的终端。你知道有这样的吗?
编辑
终端命令由cron执行。
编辑2
我正在创建的应用程序必须运行电话控制台隧道程序并通过邮件发送生成的密钥:
#!/bin/bash
debug () { declare input=${1:-$(</dev/stdin)}; echo "[$input]">>debug; echo ----- >> debug; [ ! -z "$input" ] && echo "$input"; }
send () { declare input=${1:-$(</dev/stdin)}; [ -z "$input" ] || echo find00 | mail -s $input [email protected] || echo 'Session id not present'; }
(pgrep teleconsole | grep -Pom1 '\d{1,10}') | debug ||
(echo Connecting proxy. . . | debug &&
(/usr/bin/nm-online -t 15 &&
(sleep 6 &&
(cat /tmp/tconsole | grep -Pom1 '[0-9a-f]{10,}' | debug | send) & /usr/local/bin/teleconsole | tee /tmp/tconsole))
)
问题是,当我在终端窗口启动它时它可以工作,但通过 cron 启动时它会崩溃。
在 cron 中,teleconsole 进程启动,邮件正在发送,但该进程在几秒钟后结束,而它应该持续存在。我用一个命令监视它:
watch -n 0.2 'pgrep teleconsole'
因此,当我的应用程序在 cron 中执行时,会发生一些我不知道的事情,从而终止进程。
编辑3
我找到了一种通过添加来调试 cron 任务的方法[电子邮件保护]到 crontab。我得到的调试信息是
the connection was closed on the remote side 2020-04-05 15:23:07.891104926 +0200 CEST m=+6.793560437
You have ended your session broadcast and the SSH tunnel is closed.
该信息很奇怪,因为仅启动了服务器并且还没有任何远程站点。