Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何在Fedora 14机器启动时运行脚本_Linux_Bash_Fedora_Restart - Fatal编程技术网

Linux 如何在Fedora 14机器启动时运行脚本

Linux 如何在Fedora 14机器启动时运行脚本,linux,bash,fedora,restart,Linux,Bash,Fedora,Restart,我有一个安装了Fedora 14的AWS AMI。我没有root访问权限,但我可以使用sudo做几乎任何事情。我有一个脚本,我想在机器启动时运行-myScript.sh 通过调用sudo/dir/dir/myScript.sh start调用此脚本。它还支持我经常使用的命令stop和status 启动时运行这样一个脚本的理想方式是什么?您有几种简单可用的机制: 两种最常见的机制: 添加一个文件。这看起来很简单,但确实将可以使用您提供的脚本的发行版限制在少数较新的发行版(Ubuntu、Google

我有一个安装了Fedora 14的AWS AMI。我没有root访问权限,但我可以使用
sudo
做几乎任何事情。我有一个脚本,我想在机器启动时运行-
myScript.sh

通过调用
sudo/dir/dir/myScript.sh start
调用此脚本。它还支持我经常使用的命令
stop
status


启动时运行这样一个脚本的理想方式是什么?

您有几种简单可用的机制:

两种最常见的机制:

添加一个文件。这看起来很简单,但确实将可以使用您提供的脚本的发行版限制在少数较新的发行版(Ubuntu、Google的Chrome发行版、Fedora,可能是RHEL?)

添加一个。init脚本更难编写,但在为系统管理员提供更多命令行参数方面具有更大的灵活性。它们几乎在任何地方都受到支持,甚至是将(部分或大部分)initscript切换到Upstart作业的发行版

我不经常看到它,与其说它是软件开发人员的选择,不如说它是系统管理员的选择,但您也可以使用system Vixie
cron(8)
工具在启动时启动程序

您可以在
/etc/cron.d/*
中向系统crontab添加条目;Vixie cron支持
@reboot
说明符,该说明符非常适合此任务


或者,您可以将条目添加到您自己的个人
crontab(5)
文件中;同样,Vixie cron的
@reboot
也适用于用户,但您不能从
crontab(5)
运行交互式
sudo(8)
。如果您想使用自己的个人
crontab(5)
文件,请参阅
NOPASSWD
中的
documentation,但是请注意,机器上的其他管理员可能不喜欢这个想法。

我认为最简单、最通用的方法(尽管不如@sarnold的建议灵活)将
/dir/dir/myScript.sh start
添加到/etc/rc.local。在所有其他启动脚本运行后,脚本将在引导时运行。

sudo
访问通常意味着根访问,因为
sudo
允许您以根用户身份运行命令。请注意,Fedora 16在默认情况下不再附带
rc.local
,但我不确定。但是在哪里添加/放置那些脚本Upstart/sysv initscript难道不值得吗?@BleedingFingers:好主意。由于这个答案是书面的,systemd也已经出来,并改变了几个发行版的答案,这应该得到适当的解决。。。