linux起動の設定にはいくつかの方法があります


linux起動の設定にはいくつかの方法があります
linuxの起動を設定するには3つの方法があります
1.rcを編集します.loaclスクリプト
linuxは起動時に/etc/rcを実行します.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s
" "$_IP" fi ## sudo nohup /home/pi/frp/start.sh & ## , &, , , , nohup。 exit 0

この方法は、简単ですが、私はすべてのプログラムがこのようにすることができることを発见して、スタートアップスクリプトの中に置いてスタートアップすることができます.
  • /etc/rc.localは実行権限がなく、権限を変更した後も解決できません(ネット上では可能と言われています)
  • パスは絶対パスを記述していません(これは可能ですが、絶対パスが正しいことに気づきました.私のプログラムはまだ起動していません)
  • sh互換性の問題、ソフトリンクの再実行(参照)https://www.mmuaa.com/post/4e728a88a1a68e13.html)

  • 最後まで稼働しなかった.そして、システムがまだ完全に走っていないからではないかと思います.その時、私のプログラムは実行できません.この点に基づいて、遅延をしました.
    sleep(10)
    sudo nohup /home/pi/frp/start.sh &
    

    やはり今回はプログラムが動いていて、本当の原因は見つかりませんでしたが.しばらくプログラムが走っていないことに気づかず、しばらくこのように解決した.
    2.プログラムをシステムサービスに追加する
    2.1プログラムのシステムファイルの作成
    cd /usr/lib/systemd/system
    sudo nano frpc.service #    **.service  
    
          
    [Unit]
    Description=The nginx HTTP and reverse proxy server
    After=network.target remote-fs.target nss-lookup.target
    #       
    
    [Service]
    Type = simple #         
    ExecStart = /home/pi/frp/frpc -c /home/pi/frp/frpc.ini #             
    
                 
    https://www.freedesktop.org/software/systemd/man/systemd.service.html
    

    2.2起動の設定
    sudo systemctl disable frpc
    sudo systemctl enable frpc
    sudo systemctl start frpc
    

    3.使いにくい方法
      bash    /etc/profile.d,                 。
             ,      .   /etc/profile.d          shell   。