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