Linuxにプログラムを配置する

3046 ワード

nohup&
プログラムがLinuxで実行されている場合、sessionをオフにすると、プログラムはSIGHUP信号を受信して終了しますので、nohupを使用してこの信号を免疫できます.Ctrl+Cを使用すると、プログラムはSIGINT信号を受信して終了し、使用&免疫が可能です.
nohupと&よく一緒に使います.この時は同時に免疫SIGHUPとSIGINT信号があります.
nohup command &
システム
systemtedはLinuxシステムの最初のプロセスであり、systemtedを使ってサービスを作成してプログラムを実行することができます.systemtedのメインコマンドです.サービスを管理するために使用できます.以下は一般的なsystemtelコマンドです.
#     
systemctl start servicename

#     
systemctl stop servicename

#     
systemctl restart servicename

#             
systemctl kill servicename

#              
systemctl reload servicename

#        
systemctl enable servicename

#         
systemctl disable servicename

#         
systemctl status servicename
serviceプロファイルには以下の3つのフォルダがあります.優先度はここで下げます.
  • /etc/system/system
  • /run/system/system
  • /usr/lib/system/systemまたは/lib/system/system
  • serviceプロファイルは通常3つのセグメントから構成されています.それぞれ「ユニット」、「ユニットのタイプ:Serviceなど」、「Install」です.
    [ユニット]共通パラメータ:
  • Description:情報を説明します.
  • After:どのユニットの後ろで起動するかを示します.
  • Before:どのユニットの前で起動するかを示します.
  • Requires:強い依存ユニットは、これらのユニットが起動されていない場合、ユニットも起動されません.
  • Wants:弱依存ユニットは、このユニットを起動した後、どのユニットを起動したらいいですか?
  • Conflits:どのユニットと競合していますか?これらのユニットが起動したら、そのユニットは起動しません.
  • [Service]共通パラメータ:
  • ExecStart:サービス実行命令を起動します.
  • ExecStop:サービスの実行を停止するコマンドです.
  • ExecReload:サービス実行命令を再読み込みします.
  • ExecStartPre:サービスを開始する前に実行されるコマンド.
  • ExecStartPostフィールド:サービス開始後に実行されるコマンド.
  • Exec StopPostフィールド:サービス停止後に実行されるコマンド.
  • Restart Sec:Systemdがサービスを再開する前に、待つべき秒数を表します.デフォルトは100ミリ秒です.
  • RemanAfterExit:YESに設定した場合、プロセスが終了した後もサービスは継続して実行されます.
  • Type:起動タイプで、以下の値に設定できます.
  • simple(デフォルト値):ExecStartフィールドで起動するプロセスがメインプロセスです.
  • forking:ExecStartフィールドはfork()で起動します.この時、親プロセスは終了し、子プロセスはメインプロセスになります.
  • oneshot:simpleに似ていますが、一回だけ実行して、Systemd会などはそれを実行し終わって、他のサービスを起動します.
  • dbus:シンプルなようですが、D-Bus信号を待って起動します.
  • notify:simpleのように、起動後に通知信号を送り、Systemdで他のサービスを再起動します.
  • idle:simpleと似ていますが、他のタスクが全部実行されるまで、サービスが開始されます.一つの使用の場合は、そのサービスの出力を他のサービスの出力と混合しないようにするためです.
  • Restart:サービス終了後の再起動方式を定義し、以下の値に設定できます.
  • no(デフォルト値):終了後は再起動しません.
  • on-success:正常終了時(ログアウト状態コードは0)のみ再起動します.
  • on-failure:非正常終了時(終了状態コードは0ではない)、信号終了とタイムアウトを含めて、再起動されます.
  • on-abnormal:信号終了とタイムアウトだけで再起動します.
  • on-abort:キャプチャされていない信号が受信されたときにのみ再開されます.
  • on-watch dog:タイムアウトしたら再起動します.
  • always:どんな退出の原因に関わらず、いつも再起動します.
  • KillMode:システムがどのようにサービスを停止するかを定義しています.以下の値に設定できます.
  • control-group(デフォルト値):現在のコントロールグループの中のすべてのサブプロセスは、すべて殺されます.
  • process:メインプロセスだけを殺します.
  • mixed:メインプロセスはSIGERM信号を受信し、サブプロセスはSIGKILL信号を受信する.
  • none:プロセスがないと殺されます.サービスのstop命令を実行するだけです.
  • [Install]共通のパラメータ:
  • WantendBy:このサービスが存在するTargetを表し、Targetはサービスグループを意味し、サービスのセットを表し、デフォルトの起動Targetはmulti-user.targetである.
  • ハロー.service:
    [Unit]
    Description=hello world
    
    [Service]
    Type=simple
    ExecStart=/bin/hello
    
    [Install]
    WantedBy=multi-user.target