启动终端并在重启后从 systemd 执行脚本

30度三度

我一直在创建一个安装脚本,该脚本将仅用于在 Ubuntu Xenial 桌面上安装代理和开发配置。

我有 2 个脚本,它们都是交互式的并且需要用户输入,我的挑战是每个脚本在安装后都需要重新启动,然后需要自动打开另一个控制台并与下一个脚本交互。

这是流程图:

  script_1.sh  >  reboot  >  script_2.sh 
       V                          V              
   usr input                  usr input               
   required                   required                 

我已经完成了所有脚本并按照它们的方式工作,我的挑战是尝试配置 Systemd,因此在重新启动后它将打开一个控制台并开始下一个脚本。

我对此很陌生,但我使用 rc.local 构建了一些东西,然后阅读了大量帖子,说将它用于此类安装并不是一个好习惯,我开始使用 upstart 然后我发现它已被弃用,我需要使用 Systemd。

显然,我会构建这些脚本,然后在此过程中将它们复制进去并在完成后将它们删除,这里是之前的尝试,任何有关如何执行此操作的帮助都会很棒,因为我已经失去了 2 天。

之前的尝试:

description     "install script"

start on local-filesystems or runlevel [2345]
stop on runlevel [!2345]

pre-start script
    # prepare environment
    touch /var/logs/DID.log
    exec echo DID installation started  `date` >> /var/log/DID.log
end script

script
    # do some stuff
    exec ~/Documents/script_2.sh
    console output
end script

post-stop script
    # clean up
    exec echo DID stage 2 installation finished  `date` >> /var/log/DID.log
end script

提前为您能提供的任何帮助干杯。

坎贝尔

您可以创建可能对您有所帮助的用户 systemd 脚本 ( https://wiki.archlinux.org/index.php/Systemd/User )。

这是一个简短的示例,说明如何在 systemd 的终端中启动脚本(目前不在 Ubuntu 上,因此不确定这是否适用于路径)进入 systemd 用户文件夹,可能是 /etc/systemd/user/:

[Unit]
Description=Start Script in terminal

[Service]
ExecStart=/usr/bin/xterm -hold -e /path/to/your/script.sh

[Install]
WantedBy=graphical.target

这将在我的系统(Arch)上为我运行 systemctl --user start servicename.service

一旦你拥有一个完整的图形环境,诀窍就是让它启动(如果你运行systemctl --user enable servicename.service它,我给出的脚本几乎肯定会在你的窗口管理器之前启动,因为我不在 Ubuntu 中,我无法测试)。这可能会有所帮助(最后回复):https : //superuser.com/questions/759759/writing-a-service-that-depends-on-xorg他们是 Ubuntu 用户,在登录后获得了 systemd 服务以运行图形程序。

如果您可以确定开始超时,您可以创建服务文件,在第一个脚本结束时创建/启用它,然后在第二个脚本结束时禁用/删除它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Systemd:如何仅在关机时(而不是在重启时)执行脚本

来自分类Dev

systemd服务未执行脚本?

来自分类Dev

在终端中执行脚本

来自分类Dev

在重新启动或关闭时如何在/ usr / lib / systemd / system-shutdown /中执行脚本?

来自分类Dev

在 VPN 连接启动后执行脚本

来自分类Dev

GUI准备好后,Systemd运行脚本吗?

来自分类Dev

使用ExecStartPost设置将Systemd配置为在httpd启动/重启后执行额外的脚本不起作用

来自分类Dev

在系统重启后如何使用kickstart执行脚本

来自分类Dev

关闭终端时执行脚本

来自分类Dev

关闭终端时执行脚本

来自分类Dev

无法在终端中执行脚本

来自分类Dev

cron启动但不执行脚本

来自分类Dev

下载后如何执行脚本?

来自分类Dev

ntpd同步后执行脚本

来自分类Dev

wget下载后执行脚本

来自分类Dev

下载后如何执行脚本?

来自分类Dev

桌面加载后执行脚本?

来自分类Dev

cron设置后不执行脚本

来自分类Dev

执行脚本后页面底部消失

来自分类Dev

在`python manage.py shell`启动后执行脚本

来自分类Dev

Docker:运行Oracle和执行脚本后启动Tomcat

来自分类Dev

systemd:启动后立即执行SIGTERM

来自分类Dev

用“系统”用户启动systemd服务以执行bash脚本

来自分类Dev

仅在关机时不重新启动时在systemd服务上运行脚本

来自分类Dev

如何从 Ubuntu 中的启动终端执行脚本正确启动脚本?

来自分类Dev

systemd:以只读方式挂载文件系统后,在关闭时运行脚本

来自分类Dev

在终端中执行脚本时需要帮助

来自分类Dev

打开新的终端选项卡并执行脚本

来自分类Dev

在终端中执行脚本时需要帮助