setup.py のインストール後にデーモン プログラムを自動起動させたい
シェルでは、次の方法でこれをアーカイブできます。
update-rc.d kmsd デフォルト 21
setup.py ( disutil ) で、それを行う方法は?
それを行うことは可能ですか、それとも、ユーザーがインストール後にこのコマンドを手動で呼び出せるようにすることしかできませんか?
ありがとう
はい、可能です。私は自分のコードでこれを行い、レガシー ビルド システムを使用していくつかのライブラリをプリコンパイルします。
以下のコードはテストしていないと言って警告する必要がありますが、次のようなものは機能するはずです。
from distutils.core import setup, Command
import distutils.command.install as InstallCommand
from subprocess import call
class FinallyDoSomething(Command):
description = "Do my custom stuff"
user_options = []
def initialize_options(self):
pass
def finalize_options(self):
pass
def run(self):
call(["update-rc.d", "kmsd", "defaults", "21"])
class NewInstall(InstallCommand):
sub_commands = InstallCommand.sub_commands + [
('custom_install', None),]
setup(name='PackageName',
version='0.1',
#The rest of the setup config
cmdclass={
'install': NewInstall,
'custom_install': FinallyDoSomething,
},
)