如何在启动时执行脚本后显示终端?

如何在启动时执行脚本后显示终端?

我正在通过自定义创建的服务执行 bash 脚本。在用户登录时,脚本被执行。我可以使用 ps -ef 命令验证程序是否正在运行。

我唯一想要发生的事情是,我希望终端打开并显示脚本执行的输出。

我是 Linux 新手。仍在学习中。到目前为止,体验不是很好。

运行 Ubuntu 18.04。

答案1

让我用这个简单的例子来演示实现这一点的一种方法:

  1. 两个脚本:

    • launcher.sh, 和
    • sample.sh
  2. 脚本内容:

    • launcher.sh

      #!/usr/bin/env bash
      gnome-terminal --working-directory="/home/georgek/Documents/askubuntu" -- '--rcfile ./setup.bash ./launcher.sh'
      
    • sample.sh

      #!/usr/bin/env bash
      du -h ./; read line;
      
  3. sample.shlauncher.sh这样调用:launcher.sh这会将文件传递sample.sh到终端,笔记:直到您按下该键,才会关闭。read line请根据需要进行修改。gnome-terminalENTER

笔记: -是bash 所报告的--首选-告诉终端从此目录运行命令。-x--working-directory="/home/georgek/Documents/askubuntu"

  • 使用此文件设置变量,来自man bash

    --rcfile 文件 如果 shell 是交互式的,则从文件而不是系统范围的初始化文件 /etc/bash.bashrc 和标准个人初始化文件 ~/.bashrc 执行命令(请参阅下面的 INVOCATION)。

答案2

最好的方法是安装screenbyobu获得更好的用户界面,然后在那里运行脚本:

screen -S sessionname -d -m /path/to/script

这将允许您重新连接到会话

screen -r sessionname

考虑到您是从 systemd 服务启动它,您可能需要完成两件事:要么允许每个人进行多用户会话,要么仅为您的用户名配置个人访问权限。这将需要有自定义配置文件并将其传递给带有-c标志的屏幕。

也可以看看:

相关内容