启动root用户login服务

我有两个脚本,第二个依靠第一个脚本:

b_reb

该脚本为第二个脚本创build一个单元文件。 只有root用户login后才能启动a_reb服务,并且应该以root身份执行同一个会话。

这是b_reb脚本:

 #!/bin/bash # Installing updates and other software echo "Creating systemd unit file..." cat << EOF > /usr/lib/systemd/system/a_reb.service [Unit] Description="Basic setup" [Service] WorkingDirectory=$(pwd) Type=forking ExecStart=/bin/bash $(pwd)/a_reb KillMode=process [Install] WantedBy=multi-user.target EOF echo "Enabling a_reb at startup..." systemctl enable a_reb.service reboot now 

所以服务器重新启动并且根login。现在在同一个会话中, a_reb应该通过启动a_reb.service来执行。 我还没有作出a_reb ,但其内容是无关紧要的。

例如:一旦rootlogin, a_reb被执行,并输出一个提示让root来回答。

我希望我能正确解释自己。 我也接受其他方式做这个。 主要思想是b_reb做一些事情然后重新启动,此后a_reb在重新启动之后a_reb运行。

[UPDATE]

b-reb在系统上安装更新和所需的软件包。 之后,它将avahi-daemon主机名更改为.alocal 。 服务器然后需要重新启动。

a_rebconfiguration已安装的软件并进行域join。 域连接如下所示:

 # Get adm-user for domain-join read -p 'adm username for domain-join: ' ADM echo "Continuing as $ADM..." realm join MYDOMAIN.LOCAL –U $ADM 

这就是为什么我需要脚本以root身份运行(我不想使用sudo)。 我们是4人将使用这个,我们每个人都有我们自己的用户。 realm会提示input用户密码,所以没有必要。

你的任务是:

  • b-reb在系统上安装更新和所需的软件包。 之后,它将avahi-daemon主机名更改为.alocal。 服务器然后需要重新启动。

  • a_rebconfiguration已安装的软件并进行域join。

如果你打算使这个复杂化,我会build议使用Ansible,Puppet或Chef进行真正的configurationpipe理 – 事实上,你注意到你计划在将来自动化这个。 因此

把它变成服务是不必要的复杂。 而你正在尝试用a_reb从服务器读取控制台是不好的做法。 只要把你的两个shell脚本放到/usr/sbin然后指示你的四个用户运行它们就可以运行它们(我不太清楚你的描述)。