rc.localを介して開始されるPythonデーモンプロセスがあります。この同じスクリプトは、同じ権限で、私が持っている他のいくつかのUbuntuボックスにインストールされます。これらのインストールでは問題なく実行されます。つまり、ボックスを再起動した後、デーモンプロセスが実行されています。
ただし、この特定のインストールでは、ログインしてプロセスの存在を確認するまでに、デーモンプロセスが実行されていません。システム間のrc.localファイルは同一です(または少なくとも十分に近い):
localaccount@sosms:~$ cat /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.
python /var/www/myDaemon/Main.py > /var/log/somelog.txt
exit 0
権限は次のとおりです。
localaccount@sosms:~$ ls -la /etc/rc.local
-rwxr-xr-x 1 localaccount localaccount 370 Jun 3 11:04 rc.local
このテストrc.localを使用して、rc.localプロセスが実行されているかどうかをテストしました。
localaccount@sosms:/var/log/sosmsd$ cat /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.
echo "test" > /home/localaccount/test1
/usr/bin/python /var/www/sosms/sosmsd/Main.py > /var/log/sosmsd/log/log
echo "test" > /home/localaccount/test2
exit 0
localaccount@sosms:/var/log/sosmsd$
また、ボックスを再起動すると、最初のテストファイル(test1)のみが作成されます。Python行が何らかの問題を引き起こしていることを意味していると思いますが、/ var / log / sosmsd / log/logに出力がありません。
localaccount@sosms:~$ ls
test1
アップデート:
次に、larsksのアドバイスに従い、Pythonスクリプトの起動でこのエラーが発生していると判断しました。
mysql_exceptions.OperationalError: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)")
これは、MySQLが初期化される前にrc.localが実行されていることを意味しますか?ここからどこへ行くの?