Answers:
将要运行的脚本放在/etc/init.d目录中,并使该脚本可执行。
chmod 755 myscript
完成此操作后,在您要使用的运行级别目录中创建一个符号链接,例如,如果要在图形运行级别2(Ubuntu的默认运行级别)中运行程序,则可以将其放置在/etc/rc2.d目录中。您只是无法将其放置在目录中,必须用“ S”表示启动,以指明其运行时间,并且执行顺序很重要。通过给它更大的编号,将其放在目录中的所有其他内容之后。
如果最后一个要运行的脚本是rc.local它的名字,S99rc.local那么您需要将脚本添加为S99myscript。
ln -s /etc/init.d/myscript /etc/rc3.d/S99myscript
每个向后兼容/etc/rc*.d目录都有指向该/etc/init.d/目录的符号链接。
/etc/rc2.d,而不是rc3.d如示例中所示。似乎rc2.d不仅是图形运行级别。
cd /etc/rc`cat /etc/init/rc-sysinit.conf | grep "env DEFAULT_RUNLEVEL" | grep -oP "\d"`.d将带您到/etc/rc?.d与默认运行级别相对应的目录。
rc.local它的名字,S99rc.local那么您需要将脚本添加为S99myscript。”。您的意思是:“如果要运行的最后一个脚本是myscript它的名字,S99myscript那么您需要将脚本添加为S99myscript。”
在中包含命令/etc/rc.local。每当用户的运行级别更改时,它将运行。
注意:您必须将命令放在/etc/rc.local的最后一行之前,该行包含:“ exit 0”。
/etc/rc.local包含以下内容的最后一行之前: exit 0
/etc/rc.local在ubuntu 15.10中有注释:“此脚本在每个多用户运行级别的末尾执行。” 因此该脚本可以在引导期间运行几次,对吗?
使用crontab选项使脚本在重新启动后运行,
您可以通过@reboot在cron中添加代码来做到这一点
由root用户打开crontab:
$ sudo crontab -e
在底部添加下一条记录:
@reboot yourScriptPath
那会做你想要的。
crontab -e不需要超级用户特权的command 吗?我想知道它是否可以运行需要以root身份运行的脚本。
sudo crontab -e以使其在启动期间以root用户身份运行脚本。
/var/run/crond.reboot,否则将无法执行任务
这在Ubuntu 17.04上对我有用:
创建游览脚本文件,如disable_cdrom在方便您的位置。就我而言home/yterle/disable_cdrom。就我而言:
#!/bin/sh
eject /dev/sr0 -i 1
使它可执行 chmod 775 disable_cdrom
/etc/systemd/system并在其中创建一个service文件。例如sudo gedit /etc/systemd/system/disable_cdrom.service我的disable_cdrom.service样子是这样的:
[Unit]
Description=Disable cdrom
[Service]
Type=oneshot
ExecStart=/bin/sh /home/yterle/disable_cdrom
[Install]
WantedBy=multi-user.target
凡ExecStart指向与运行脚本/bin/sh
然后运行systemctl enable disable_cdrom.service以启用systemd服务
systemctl enable disable_cdrom.service
/etc/init.d/
以可执行权限将脚本文件包含到其中,然后设置不同的运行级别
$ update-rc.d script-name default
它将使您的脚本启动启动。
update-rc.d script-name enable吗
autostart清单或*.service文件,在几个地点,以及在init.d或crontab。看到这个:unix.stackexchange.com/a/525845/43233