
對於 Upstart 腳本,正規表示式總是給我 false,但是一旦我手動執行腳本,它就會起作用。
/etc/init/sync_remote_users.conf:
start on filesystem and net-device-up IFACE!=lo
stop on runlevel [016]
respawn
##?
respawn limit 20 5
##?
script
exec opt/local/our-sync-pkg-2.0/sync_users start
end script
這是sync_users程式碼:
#!/bin/bash
for line in $(cat $DECRYPTED_PASSWORDS_FILE)
do
if [[ !($line =~ ^[^-_][0-9a-zA-Z._-@]+\:[0-9a-zA-Z.\/$]{98}+$) ]]; then
result=false;
fi
done
答案1
程式碼工作正常,問題是 upstart 腳本預設不執行 BASH 腳本,除非你提到它是 bash 腳本。所以我將我的新貴腳本更改為:
start on filesystem and net-device-up IFACE!=lo
stop on runlevel [016]
script
exec bash -c '/opt/local/our-sync-pkg-2.0/sync_users start'
end script