1

setup.py のインストール後にデーモン プログラムを自動起動させたい

シェルでは、次の方法でこれをアーカイブできます。

update-rc.d kmsd デフォルト 21

setup.py ( disutil ) で、それを行う方法は?

それを行うことは可能ですか、それとも、ユーザーがインストール後にこのコマンドを手動で呼び出せるようにすることしかできませんか?

ありがとう

4

1 に答える 1

2

はい、可能です。私は自分のコードでこれを行い、レガシー ビルド システムを使用していくつかのライブラリをプリコンパイルします。

以下のコードはテストしていないと言って警告する必要がありますが、次のようなものは機能するはずです。

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,
          },
      )
于 2013-02-21T09:17:46.603 に答える