Linux 具有shell交互的autostart脚本
我想在ubuntu中安装一个脚本,当系统重新启动时自动运行 我已尝试从/etc/rc运行它。问题是: 我的脚本调用一个c程序,该程序在shell中抛出一些Gtk弹出窗口和一些printf,并等待scanf输入。当我将它放在rc.local中并重新启动时,系统似乎没有执行,但实际上它是在引导shell后台运行的(我在/var/log/syslog中看到了这一点),因此无法显示gtk弹出窗口,也无法显示printf/scanf交互 然后我寻找其他方法来获得它,我找到了~/.config/autostart/ 这里我放置了一个file.desktop,其中包含以下内容:Linux 具有shell交互的autostart脚本,linux,bash,shell,Linux,Bash,Shell,我想在ubuntu中安装一个脚本,当系统重新启动时自动运行 我已尝试从/etc/rc运行它。问题是: 我的脚本调用一个c程序,该程序在shell中抛出一些Gtk弹出窗口和一些printf,并等待scanf输入。当我将它放在rc.local中并重新启动时,系统似乎没有执行,但实际上它是在引导shell后台运行的(我在/var/log/syslog中看到了这一点),因此无法显示gtk弹出窗口,也无法显示printf/scanf交互 然后我寻找其他方法来获得它,我找到了~/.config/autost
[Desktop Entry]
Name=backup Exec=/path/myScript.sh
Type=Application
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
在myScript中,我执行make和以下操作:
[Desktop Entry]
Name=backup Exec=/path/myScript.sh
Type=Application
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
gnome终端-e“bash
-c\“/path/myprogram;exec bash \“&
最后,这是工作,这是运行时重新启动,但现在的问题是,我的程序正在运行2次一个在q新的外壳(这正是我所寻找的),另一个在启动背景下,因为它发生在rc.local方法。
我该怎么办?如果您可以使用systemd服务自动启动脚本,效果会更好。最新版本的ubuntu使用systemd服务来调度脚本。您可以从/lib/systemd/system目录中找到一些参考。您可以粘贴您创建的服务文件吗?backup.service:[Unit]Description=backup service DefaultDependencies=no[service]Type=oneshot ExecStart=/home/jorge/Documentos/scripts/overwatchSaver/backups/script.sh[安装]WantedBy=multi-user.target您必须使用
systemctl enable backup.service
systemctl start enable.service
启用和启动服务,然后您可以检查服务文件的状态systemctl status enable.service
。这可能会给出一些失败的线索。还可以尝试将Exec start更改为ExecStart=/bin/bash-c'路径到yourscript.sh'