我正在使用 Archlinux 构建一些小型互联网广播播放器。我现在需要的是自动启动(无需登录!)脚本或仅命令:
su -c 'screen "vlc (a lot of parameters)"' vlc_user
通过阅读https://wiki.archlinux.org/index.php/Autostarting和这个https://wiki.archlinux.org/index.php/Bash#Configuration_file_sourcing_order_at_startup我发现我需要将我的命令添加到 /etc/bash.bashrc ...但这不起作用...
有人可以帮助或指导我如何使其工作吗?
谢谢!
答案1
虽然您没有确切说明什么不起作用,但我推断您想要启动的程序实际上并没有在启动时启动。
问题是该bashrc
文件实际上不会在启动时运行 - 它通常在登录时运行。您可以通过登录用户来确认这一点,然后命令应该会运行。但是,如果没有,那也没关系,因为您应该使用systemd(假设您使用 systemd 而不是使用 init.d 样式脚本)。
当您的系统启动时,systemd 应该有一个默认目标,我将用 来指定$TARGET
。这个目标很可能是multi-user.target
。我还假设您的命令是$COMMAND
,要么是命令,要么是脚本文件。
现在,打开目录/etc/systemd/system
并将编辑器指向文件internet-radio.service
。写入以下内容:
[Unit]
Description=Internet Radio
[Service]
ExecStart=$COMMAND
[Install]
WantedBy=$TARGET
这应该会自动启动将要运行的守护进程。许多您可以添加到此文件的选项 -这篇博文是我编写这个答案的主要资源,并且如果您想在脚本终止时自动启动脚本,或者有一个 PID 文件,或者 systemd 可以为您做一百万件其他事情,它可能会对您有所帮助。