web-dev-qa-db-ja.com

systemdスクリプトの作成

起動時に実行する必要があるプロセスがあります。これは、マシンの電源が入っている間ずっと稼働し続ける必要があるものです。今のところ、サーバーを起動するすべてをbashに次のように入力しています。

command -f argument & disown

Initスクリプトを作成する必要があることは知っていますが、その方法がわかりませんでした。いくつかの調査の後、Ubuntuはinitシステムとしてsystemdを使用しているようです(Upstartによると、同じではないという参照もあります)。しかし、オンラインで見つけたすべてのガイドは、実行可能ファイルを/etc/initまたは/etc/init.dに配置するよう指示しています。 Initは完全に異なるinitシステムであると想定されています。

誰かが私を正しい方向に向けることができますか?サンプルのsystemdスクリプトまたはオンラインガイドでさえ、非常に役立ちます。

3
vikarjramun

次の2つのファイルが必要です。

  1. スクリプトファイル:

    command.sh
    
  2. .serviceファイルを/etc/systemd/systemに配置し、644chmod 664 command.serviceの許可を与える:

    command.service
    
  3. command.serviceの最も単純なコンテンツは次のとおりです。

    [Unit]
    Description=Some service description
    
    [Service]
    ExecStart=/bin/bash -c "/path/to/command.sh -f argument & disown"
    
    [Install]
    WantedBy=multi-user.target
    
  4. ブート時に起動するには、systemdコントローラーsystemctlを使用します。

    Sudo systemctl enable command
    
    # or 
    
    Sudo systemctl enable command.service
    

さまざまなセクションでさらに多くのオプションを使用できることに注意してください。 こちら を参照し、command.shchmod +x command.shで実行可能であることを確認してください

5
George Udosen