天九歌 2019-07-09 15:18 采纳率: 0%
浏览 555

Linux systemd 自启动脚本无法正常运行(求助分析方向)

在RHEL8.0上,通过systemd service用以下脚本来实现登录后自动切换壁纸。

服务为test.service, bash脚本为test.sh

单独运行Set_background.sh 没有问题,但是当通过test.service去调用的时候,只能设置一次。
设置壁纸的命令成功,但是重置的命令失败。
考虑是因为通过test.service去调用test.sh时,线程出现问题。
请高手指教从哪里去分析。

test.service内容如下:

[Unit]
Description=Change Desktop background

[Service]
ExecStart=/home/test/Desktop/Set_background.sh
After=gdm.service

[Install]
WantedBy=graphical.target

Set_background.sh内容如下:

#!/bin/bash
while true
do
    /usr/bin/gsettings set org.gnome.desktop.background picture-uri 'file:///home/test/Desktop/8-dark.xml' 
    sleep 3
    /usr/bin/gsettings reset org.gnome.desktop.background picture-uri
    sleep 3

done

  • 写回答

1条回答

  • six2me 2024-03-26 08:37
    关注

    systemd是一个服务,是用来执行简单的指令,进行配置,在systemd中,服务应该以非交互的方式运行,并且应该由systemd来监控和管理服务的生命周期。所以systemd调用的脚本不宜使用while true ,你可以使用for执行有数个循环试验下。
    systemd 调用的脚本应该是一个非交互式的,不会无限循环执行的

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题