我有安裝了Fedora 14的AWS AMI。我沒有root訪問權限,但我可以使用sudo
做任何事情。我有一個腳本,我想在機器啓動時運行 - myScript.sh
。如何在Fedora 14機器啓動時運行腳本
通過調用sudo /dir/dir/myScript.sh start
調用此腳本。它也支持我經常使用的命令stop
和status
。
在啓動時運行這樣的腳本的理想方式是什麼?
我有安裝了Fedora 14的AWS AMI。我沒有root訪問權限,但我可以使用sudo
做任何事情。我有一個腳本,我想在機器啓動時運行 - myScript.sh
。如何在Fedora 14機器啓動時運行腳本
通過調用sudo /dir/dir/myScript.sh start
調用此腳本。它也支持我經常使用的命令stop
和status
。
在啓動時運行這樣的腳本的理想方式是什麼?
你有容易獲得幾個機制:
最常見的兩種機制:
添加一個upstart job definition文件。這看起來很簡單,但確實會限制可以將您提供的腳本用於少數新的腳本(Ubuntu,Google的Chrome發行版,Fedora,可能是RHEL?)的發行版。
添加一個sysv-init initscript。 init-scripts很難編寫,但在爲系統管理員提供更多命令行參數方面有更大的靈活性。他們也得到了幾乎無處不在的支持,甚至是已經將其(部分或大部分)原稿轉換爲Upstart工作的發行版。
我沒有經常看到它,它比軟件開發人員的選擇更像是一個系統管理員選擇,但您也可以使用系統Vixie cron(8)
工具在啓動時啓動程序。
您可以將條目添加到/etc/cron.d/*
中的系統crontab; Vixie cron支持@reboot
說明符,這對於此任務非常有用。
或者,您可以將條目添加到您自己的個人文件crontab(5)
;再次,Vixie cron的@reboot
也適用於用戶,但是您不能從crontab(5)
運行交互式sudo(8)
。如果您想使用您自己的個人crontab(5)
文件,請參閱sudoers(5)
中的NOPASSWD
文檔,但要警告該計算機上的其他管理員可能會討厭此想法。
我不確定。但是不值得添加/放置這些腳本Upstart/sysv-initscript的位置嗎? – 2014-08-04 05:00:58
@BedingedFingers:好主意。由於這個答案是寫的,systemd也出來了,並且改變了幾個發行版的答案,並且應該妥善解決...... – sarnold 2014-08-07 01:07:15
我認爲最簡單和最普遍的方法(儘管比@ sarnold的建議更不靈活)是將/dir/dir/myScript.sh start
添加到/etc/rc.local。該腳本將在所有其他啓動腳本運行後在啓動時運行。
請注意,Fedora 16默認不會使用'rc.local',但[它可以手動添加](http://scrye.com/wordpress-mu/nirik/2012/03/30/rc-local-in-fedora/)。 – 2012-05-16 05:27:12
'sudo'訪問通常意味着root訪問,因爲'sudo'可以讓你以root身份運行命令。 – Blender 2011-04-06 22:13:06
這屬於serverfault – SiegeX 2011-04-06 22:14:45