起動時にスクリプトを実行する必要がありますが、これはフォルダで実行する必要があることを知っていますinit.d
。このスクリプトにはsudo
権限が必要で、正常に実行されたときにユーザーにsudoパスワードを入力するように求められます。
sudo権限が自動的に付与された状態で起動スクリプトを実行できますか?ユーザーにパスワードのないアクセス権を付与する必要がありますかsudo
?理想的には、ユーザーの対話なしで実行したいと思います。
答え1
通常、システムはデフォルトでフルルートアクセス権で起動スクリプトを実行するため、何もする必要はありません。
スクリプトの場所は、init
システムで使用されるパッケージによって異なります。
/etc/init.d
クラシックSysVinitでは、起動スクリプトは通常、スクリプトが実行する必要がある実行レベルを示す開始/終了シーケンス内の場所を示すディレクトリに生成されたシンボリックリンクを含むディレクトリにあります。 (ランレベルは「システム全体の状態」です。RedHatスタイルシステムでは、デフォルトのランレベルはGUIログインが有効な場合は5、そうでない場合は3です。Debianスタイルシステムでは通常3です。)/etc/rc<number>.d/
<number>
シンボリックリンクを更新するのは/etc/rc<number>.d/
面倒なので、通常これを行うツールがあります。最も一般的なツールは次のとおりですchkconfig
。スクリプトの先頭に特別な形式のコメントを入れる必要があります(man chkconfig
展開の詳細を参照)。その後、スクリプトを挿入して/etc/init.d
実行できますsudo chkconfig --add <your script name>
。
システムがSysVinitupstart
または他のSysVinitの新しい選択肢を使用している場合は、SysVinit準拠のsystemd
システムが含まれる可能性があるため、上記のガイドラインは引き続き適用される可能性がありますが、SysVinitは廃止され、適切ではないと見なされるため、新しい方法を学ぶことも検討する必要があります。最新のマルチコアシステムは最善の選択ではありません。